--| Copyright (c) 1993-2017 University of Southern California, Eiffel Software and contributors. --| All rights reserved. --| Your use of this work is governed under the terms of the GNU General Public --| License version 2. 1.1.0 ===== 1. Supported optional line number for validity errors in eweasel scripts. In addition to the old syntax for validity code VALIDITY_CODE the new one is now supported: VALIDITY_CODE:line_number where line_number should be a positive integer corresponding to the line number for which the violation is reported. Bugs and deficiencies which have been fixed in EiffelWeasel release 1.0 ======================================================================= 1. EiffelWeasel has been modified to compile with the 5.0 version of the compiler. The compile_result instruction now allows validity_warning as one of the possibilities. Syntax is the same as for validity_error, but EiffelWeasel expects compilation to finish if result is validity_warning in the test control file. This was added to support Unused_local_warning. All existing tests with unused locals have had their test control files modified to use validity_warning. 2. EiffelWeasel should compile on Linux without any changes to the C code. I assume your compiler on Linux defines the preprocessor symbol __linux. If not, contact me and I'll fix it. Bugs and deficiencies which have been fixed in EiffelWeasel release 0.9 ======================================================================= 1. EiffelWeasel has been modified to compile with the 4.2 version of the compiler. The OS interface has been reworked and should be in better condition than before. 2. EiffelWeasel now works on both SunOS and Solaris. The C file unix_os.c, which has code for externals used by the operating system interface (class UNIX_OS), must be compiled with the symbol __SVR4 defined if you are compiling EiffelWeasel for Solaris. If you use the SPARCWorks C compiler `acc' this happens automatically. If you use `gcc' you will probably need to include a "-D__SVR4" flag on the command line to compile unix_os.c. 3. There are now several different init files in the control directory. Each one corresponds to a specific platform and compiler version. They are: init_sunos_4.1 init_solaris_4.1 init_solaris_4.2 You shouldn't have to change them, but you will need to change the following files to reflect the correct value for the EIFFEL4 variable: solaris_rel4.1 solaris_rel4.2 sunos_rel4.1 sunos_rel4.2 Bugs and deficiencies which have been fixed in EiffelWeasel release 0.8 ======================================================================= 1. EiffelWeasel has been modified to compile with the 3.3.7 version of the compiler. 2. Previously, there were too many cases where a compile_result of "unknown" was displayed. These cases occurred because EiffelWeasel did not know about compiler exceptions. It now knows when the compiler terminated due to an exception and it reports the exception tag, such as "segmentation fault". 3. All tests in the test catalog now have either "pass" or "fail" as their first keyword. This makes it easy to do regression testing by including `-f "kw pass"' on the command line and to see what has been fixed in a new release by including `-f "kw fail"'. Bugs and deficiencies which have been fixed in EiffelWeasel release 0.7 ======================================================================= 1. EiffelWeasel has been modified to compile with the 3.3 beta of the compiler. 2. The current buglist has been included in the `doc' subdirectory. That directory also contains (part of) an initial proposal for changing command line options to EiffelWeasel. Bugs and deficiencies which have been fixed in EiffelWeasel release 0.6 ======================================================================= 1. EiffelWeasel has been modified to compile with the 3.2.3b version of the compiler. There was one VAPE error, which the previous compiler did not check. No real change to EiffelWeasel itself. Bugs and deficiencies which have been fixed in EiffelWeasel release 0.5 ======================================================================= 1. The syntax of the compile_result instruction has been extended to allow specification of validity errors on multiple classes. Validity error phrases may now be separated by semicolons. Extra semicolons do not cause any problems. For example, compile_result validity_error TEST VTCG; TEST1 VFFD(7);;; TEST3 VRXC 2. Eweasel is a lot smarter about the waiting needed to avoid problems due to the fact the compiler only looks at the seconds of file time of last modification. It now only waits when it really might be necessary - that is, when all of the following conditions are met: A) An Eiffel compilation has been started or resumed AND B) The time when the last compilation started or resumed is the same as the current time in seconds AND C) No wait has already been done since the last compilation. These modifications should eliminate all unecessary waiting. Bugs and deficiencies which have been fixed in EiffelWeasel release 0.4 ======================================================================= 1. All characters of a violated validity code are checked against the validity code(s) specified in the test control files. This means that you should now specify a validity compilation error as (for example): compile_result validity_error TEST VGCP(4) VLEL(2) All test control files have been updated accordingly. 2. Two keywords are reserved in the test catalog and have special meaning. Any test with the keyword `manual' will be skipped and its status will be printed as "manual" instead of "passed" or "failed. Any test with the keyword `skip' will be skipped and its status will be printed as "skipped" instead of "passed" or "failed. `Manual' is intended for tests which cannot be executed automatically, either because they have not been automated (perhaps they cannot be automated) or because they should not be executed automatically (for example, if they cause loss of license and there are a limited number of licenses). Bugs and deficiencies which have been fixed in EiffelWeasel release 0.3 ======================================================================= 1. Two new test instructions have been added. The `cleanup' instruction deletes the EIFFELGEN subdirectory of the test directory. The `abort_compile' instruction aborts a suspended Eiffel compilation (awaiting resumption) and also does a `cleanup'. See file "eweasel.doc" for details. 2. Includes cycles are now detected and reported as an include cycle parsing error. Only cycles which use exactly the same file name (after subsitution) as the test control file for a test or a currently open include file are detected. 3. The `compile_result', `c_compile_result' and `execute_result' instructions now fail if there is no pending Eiffel compilation, C compilation or execution result (respectively) to be checked. They also "use up" the result so that errors such as checking a compilation result a second time without an intervening compilation will be detected. 4. Suspended Eiffel compilations are now terminated gracefully via `q' instead of being killed by a SIGKILL signal (9). This means that EiffelWeasel can now be run without any problems when the license daemon is running. Bugs and deficiencies which have been fixed in EiffelWeasel release 0.2 ======================================================================= 1. The copy_sub and copy_raw instructions now create the destination directory if it does not exist. 2. The directory tree generated by each test is automatically deleted (via /bin/rm -r) if the test passes and is retained if the test fails. To always retain the output of each test regardless of pass/fail status, use the -k option (keep) to eweasel. 3. The batch compiler does not always detect that a file has changed if the change occurs less than one second after the previous change. Due to this bug, I have modified eweasel to wait for one second after each file copy. This slows it down considerably on my machine, but ensures that incrementality tests give the correct results. 4. Primitive facilities for selecting catalog tests have been added via the -f command line option (for `filter'). The default filter (used if no filter is specified) selects all tests in the catalog for execution. The -f option provides simple filtering by test name (-f 'test empty-export-feature-list') or by a single keyword (-f 'kw syntax'). 5. The test name in the catalog is always printed, but the test name in the test control file is only printed (in brackets) if it does not match the name in the catalog. The last component of the source directory for the test is printed in parentheses. If a test fails, its description is now displayed. 6. The c_compile instruction has been replaced by the two instructions c_compile_work and c_compile_final. The execute instruction has been replaced by the two instructions execute_work and execute_final. 7. Approximately 150 new tests have been added. Some of these tests are really new. Others check on bugs which have previously been fixed (or are modifications of these bug scenarios).