summaryrefslogtreecommitdiff
path: root/tests/README
diff options
context:
space:
mode:
Diffstat (limited to 'tests/README')
-rw-r--r--tests/README77
1 files changed, 77 insertions, 0 deletions
diff --git a/tests/README b/tests/README
new file mode 100644
index 0000000..f948eaf
--- /dev/null
+++ b/tests/README
@@ -0,0 +1,77 @@
+This file describes the flex test suite.
+
+* WHO SHOULD USE THE TEST SUITE?
+
+The test suite is intended to be used by flex developers, i.e., anyone hacking
+the flex distribution. If you are simply installing flex, then you can ignore
+this directory and its contents.
+
+* STRUCTURE OF THE TEST SUITE
+
+The test suite consists of several directories, each containing a
+scanner known to work with the most recent version of flex. In
+general, after you modify your copy of the flex distribution, you
+should re-run the test suite. Some of the tests may require certain tools
+to be available (e.g., bison, diff). If any test returns an error or
+generates an error message, then your modifications *may* have broken
+a feature of flex. At a minimum, you'll want to investigate the
+failure and determine if it's truly significant.
+
+* HOW TO RUN THE TEST SUITE
+
+To build and execute all tests from the top level of the flex source tree:
+
+ $ make check
+
+To build and execute a single test:
+
+ $ cd tests/ # from the top level of the flex tree.
+ $ cd test-pthread-nr # for example
+ $ make test
+
+* HOW TO ADD A NEW TEST TO THE TEST SUITE
+
+**- RUN the script `create-test` found in this directory with a single
+argument of the name of the test you want to create. If it fails with
+a message about a non-existent file `config.status', then run the
+configure script in the top-level directory and everything will be
+fine. If it fails to work for you other than this, report it as a
+bug.
+
+** Modify the files in the newly created directory so that they test
+whatever feature of flex you are interested in.
+
+** On success, your test should return zero.
+
+** On error, your test should return 1 (one) and print a message to
+stderr, which will have been redirected to the file named, "OUTPUT",
+in your test's directory.
+
+** If your test is skipped (e.g., because bison was not found), then
+ the test should return 2 (two). See "test-bison-nr/Makefile.am" for
+ an example.
+
+** You must modify the last few lines of the top-level configure.in by
+ adding the Makefile for your test directory. (This step is
+ done automatically by `create-test`.)
+
+** You must add the name of your test to the SUBDIRS variable in
+ tests/Makefile.am. (This is also done automatically for you by `create-test'.)
+
+** Add a description of your new test to the end of the file
+ `descriptions'. Remember to keep the description as brief as
+ possible, preferably to one line.
+
+** You will have to run the autogen.sh script in the top-level
+ directory as well as run the configure script in that
+ directory. (Note that running config.status may prove easier or
+ quicker.)
+
+** The easiest way for you to submit your new test to the flex
+ maintainers is by generating a patch. The flex maintainers only
+ need to have the Makefile.am, the flex input file, the test input
+ file (if there is one) and any other files necessary to compile the
+ test. You do not need to submit files generated by autoconf,
+ automake, configure etc. It would be helpful to include the file
+ .cvsignore which you will find in your test directory if you used
+ the `create-test' script.