/[eiffelstudio]/trunk/eweasel/source
ViewVC logotype

Log of /trunk/eweasel/source

View Directory Listing Directory Listing


Sticky Revision:

Revision 103413 - Directory Listing
Modified Fri Aug 16 13:36:07 2019 UTC (5 days, 17 hours ago) by alexk
Changed feature signatures to avoid calls to obsolete feature `as_string_8`.

Revision 103229 - Directory Listing
Modified Thu May 30 16:40:36 2019 UTC (2 months, 3 weeks ago) by alexk
Supported validity errors/warnings with spaces inside their names.

Revision 103051 - Directory Listing
Modified Wed Apr 3 10:58:12 2019 UTC (4 months, 2 weeks ago) by jfiat
Enable dead class removal.

Revision 102669 - Directory Listing
Modified Fri Dec 21 17:06:18 2018 UTC (8 months ago) by alexk
Removed redefinitions that violate VDRS(4) when a deferred feature is effected in the class, not redefined.

Revision 101872 - Directory Listing
Modified Tue Jun 26 13:28:14 2018 UTC (13 months, 3 weeks ago) by alexk
Updated to the latest compiler defaults to avoid getting an error for manifest array type mismatch.

Revision 101540 - Directory Listing
Modified Thu Mar 22 09:11:36 2018 UTC (17 months ago) by alexk
Updated version number.

Revision 101530 - Directory Listing
Modified Wed Mar 21 15:03:41 2018 UTC (17 months ago) by alexk
Supported Unicode paths, arguments and environment variables.
Replaced all obsolete feature calls with contemporary ones.
Used 32-bit strings for most processing to support Unicode.
Avoided any implicit conversion from READABLE_STRING_32 to STRING_8, and from READABLE_STRING_8 to STRING_32.
Assumed UTF-8 input-output for non-ASCII control files.
Updated code to avoid any compiler warnings.
Updated code to avoid any code analyzer reports for default rules.


Revision 101518 - Directory Listing
Modified Sun Mar 18 09:01:11 2018 UTC (17 months ago) by alexk
Ignored end of line differences when comparing files. This allows for running eweasel no the same source tree under both Windows and Linux. This also removes the need to adapt test#freez004 and test#exec081 after checking out the sources on Windows.

Revision 101508 - Directory Listing
Modified Thu Mar 15 15:21:42 2018 UTC (17 months, 1 week ago) by jfiat
Fixed instance free related issue due to external being instance free by default.

Revision 101453 - Directory Listing
Modified Wed Feb 28 14:22:47 2018 UTC (17 months, 3 weeks ago) by alexk
Use `same_string` instead of `is_equal` for string comparison.

Revision 100708 - Directory Listing
Modified Fri Sep 1 13:54:41 2017 UTC (23 months, 2 weeks ago) by alexk
Added two new options: -nologo and -nosummary to suppress initial tool message and final test results summary.

Revision 100707 - Directory Listing
Modified Fri Sep 1 13:51:22 2017 UTC (23 months, 2 weeks ago) by alexk
Added an option to control whether a summary is displayed at the end of testing or not.

Revision 100677 - Directory Listing
Modified Sun Aug 27 07:51:56 2017 UTC (23 months, 3 weeks ago) by alexk
Removed a requirement for the pre-compilation task to succeed to avoid problems with cross-compilation.

Revision 100674 - Directory Listing
Modified Sat Aug 26 07:37:17 2017 UTC (23 months, 3 weeks ago) by alexk
Updated revision number.

Revision 100673 - Directory Listing
Modified Sat Aug 26 07:36:36 2017 UTC (23 months, 3 weeks ago) by alexk
Supported parsing of optional line numbers for validity errors in compiler output and their comparison to expected result from the script where partial matching is possible when the expected result is less precise.

Revision 100672 - Directory Listing
Modified Sat Aug 26 07:33:28 2017 UTC (23 months, 3 weeks ago) by alexk
Supported reading of optional line numbers for validity errors in eweasel scripts.

Revision 100671 - Directory Listing
Modified Sat Aug 26 07:30:13 2017 UTC (23 months, 3 weeks ago) by alexk
Added (optional) line numbers for validity errors.
Added a feature for partial matching between two errors (when a line number is not specified for the expected error).


Revision 100670 - Directory Listing
Modified Sat Aug 26 07:26:55 2017 UTC (23 months, 3 weeks ago) by alexk
Added a delimiter for a next message reported by the compiler.

Revision 100669 - Directory Listing
Modified Sat Aug 26 07:25:42 2017 UTC (23 months, 3 weeks ago) by alexk
Added a script to automatially compute and set a revision number of the eweasel command (currently on Windows only).

Revision 100252 - Directory Listing
Modified Tue Apr 25 15:26:49 2017 UTC (2 years, 3 months ago) by manus
Re-exported args_ok and execute


Revision 100251 - Directory Listing
Modified Tue Apr 25 10:12:03 2017 UTC (2 years, 3 months ago) by alexk
Added revision information to the version number.

Revision 100250 - Directory Listing
Modified Tue Apr 25 10:11:04 2017 UTC (2 years, 3 months ago) by alexk
Removed unneeded white space after option /c passed on Windows.

Revision 100211 - Directory Listing
Modified Mon Apr 17 12:40:05 2017 UTC (2 years, 4 months ago) by alexk
Fixed a bug in `matches_pattern` that could lead to access on void target because attributes of current class were not checked against Void before testing whether they are equal to attributes of an argument.
Fixed a bug in `is_less` that was not consistent with `is_equal` and violated a postcondition from COMPARISON because the features tested different sets of attributes.


Revision 100209 - Directory Listing
Modified Mon Apr 17 11:08:17 2017 UTC (2 years, 4 months ago) by alexk
Fixed a bug when `attached var /= Void` should have been `attached var`.

Revision 99918 - Directory Listing
Modified Fri Mar 3 15:09:10 2017 UTC (2 years, 5 months ago) by alexk
Supported violation type in its specification.

Revision 99917 - Directory Listing
Modified Fri Mar 3 15:02:12 2017 UTC (2 years, 5 months ago) by alexk
Removed unknown violation type because in other places the type is checked against Void instead of the unknown type.

Revision 99915 - Directory Listing
Modified Fri Mar 3 14:19:55 2017 UTC (2 years, 5 months ago) by alexk
Cosmetics.

Revision 99843 - Directory Listing
Modified Sat Feb 18 09:56:36 2017 UTC (2 years, 6 months ago) by alexk
Removed dependency of a single-threaded version on Thread library and all non-testing versions on testing library.

Revision 99842 - Directory Listing
Modified Sat Feb 18 09:52:14 2017 UTC (2 years, 6 months ago) by alexk
Fixed calls to obsolete features.
Supported Unicode file name to save tests.


Revision 99841 - Directory Listing
Modified Sat Feb 18 09:37:53 2017 UTC (2 years, 6 months ago) by alexk
Removed dependency of EW_COPY_INST on EW_EQA_TEST_FACTORY by moving a feature `replace_environments` to {EW_TEST_ENVIRONMENT}.replaced_variable.

Revision 99840 - Directory Listing
Modified Sat Feb 18 07:45:45 2017 UTC (2 years, 6 months ago) by alexk
Added TIME library that is now needed to work with dates.

Revision 99839 - Directory Listing
Modified Sat Feb 18 07:43:01 2017 UTC (2 years, 6 months ago) by alexk
Added a new instruction to set a variable to a date string.

Revision 99838 - Directory Listing
Modified Sat Feb 18 07:42:13 2017 UTC (2 years, 6 months ago) by alexk
Added a new instruction to set a variable to a date string shifted from today by the specified number of days.

Revision 99837 - Directory Listing
Modified Sat Feb 18 07:35:20 2017 UTC (2 years, 6 months ago) by alexk
Added a new keyword to define a date variable.

Revision 99403 - Directory Listing
Modified Sun Nov 6 12:56:37 2016 UTC (2 years, 9 months ago) by alexk
Added a feature `close` to {BASE_PROCESS} to release allocated resources if a client is not going to wait for the process termination.
Changed {WEL_PROCESS_LAUNCHER} to release allocated process handles if they are not closed explicitly:
	- Removed `process_info` from its interface.
	- Added `process_handle`, `thread_handle` and `process_id` instead.
Updated clients of `WEL_PROCESS_LAUNCHER`.
Removed obsolete Windows API functions from `WEL_PROCESS_LAUNCHER` because they are accessible from `WEL_API`.


Revision 99114 - Directory Listing
Modified Thu Aug 18 09:54:34 2016 UTC (3 years ago) by alexk
Added command-line argument pre-processing to enclose and escape command-line arguments when required.

Revision 99113 - Directory Listing
Modified Wed Aug 17 18:47:59 2016 UTC (3 years ago) by alexk
Removed double quotes added for command-line arguments to fix eweasel execution for code analysis on Linux where command-line arguments are passed directly, i.e. do not require transformation into a string. Otherwise compiler gets arguments in quotes that it does not expect and reports an error. The quotes should be added if necessary by a lower level on systems where transformation to a string is performed, e.g. on Windows.

Revision 98330 - Directory Listing
Modified Sat Dec 26 17:52:33 2015 UTC (3 years, 7 months ago) by alexk
Replaced old code analysis options with the new ones.

Revision 98325 - Directory Listing
Modified Sat Dec 26 16:04:20 2015 UTC (3 years, 7 months ago) by alexk
Supported command-line option error analysis result.

Revision 98324 - Directory Listing
Modified Sat Dec 26 16:02:20 2015 UTC (3 years, 7 months ago) by alexk
Updated a date note and copyright years.

Revision 98323 - Directory Listing
Modified Sat Dec 26 16:01:15 2015 UTC (3 years, 7 months ago) by alexk
Added a result type for a command-line option error.

Revision 98322 - Directory Listing
Modified Sat Dec 26 15:58:58 2015 UTC (3 years, 7 months ago) by alexk
Added a flag to indicate that there is a command-line option error.

Revision 98321 - Directory Listing
Modified Sat Dec 26 15:57:37 2015 UTC (3 years, 7 months ago) by alexk
Added a prefix for a command-line option error.

Revision 98320 - Directory Listing
Modified Sat Dec 26 15:55:46 2015 UTC (3 years, 7 months ago) by alexk
Cosmetics: replaced a very long line with multiple lines.

Revision 98172 - Directory Listing
Modified Tue Dec 1 09:23:28 2015 UTC (3 years, 8 months ago) by alexk
Removed -melt command before -code-analysis because it is unnecessary and can conflict with the analysis command.

Revision 96484 - Directory Listing
Modified Mon Jan 19 09:07:06 2015 UTC (4 years, 7 months ago) by manus
Updated to 1-13 schema.


Revision 96480 - Directory Listing
Modified Sat Jan 17 22:20:37 2015 UTC (4 years, 7 months ago) by manus
Added a workaround to a strange failure we get on eweasel tests with the `cleanup_compile' instruction and the following recompilation would not work because the previously running test is still being referenced by something (we haven't been able to find out who exactly) for some more time (even if eweasel gets a notification from the OS that the process has exited). The only workaround we found is that if we are not able to delete the first time around we try a second time after 150ms. This seems to avoid that particular problem.


Revision 96477 - Directory Listing
Modified Fri Jan 16 22:45:30 2015 UTC (4 years, 7 months ago) by manus
Use `item' instead of `get' from EXECUTION_ENVIRONMENT which is now obsolete.


Revision 96476 - Directory Listing
Modified Fri Jan 16 22:45:01 2015 UTC (4 years, 7 months ago) by manus
Use `current_working_path' instead of `current_working_directory' from EXECUTION_ENVIRONMENT which is now obsolete.


Revision 96475 - Directory Listing
Modified Fri Jan 16 22:43:57 2015 UTC (4 years, 7 months ago) by manus
Use `item' instead of `get' from EXECUTION_ENVIRONMENT which is now obsolete.


Revision 96474 - Directory Listing
Modified Fri Jan 16 22:38:09 2015 UTC (4 years, 7 months ago) by manus
Removed non-used local.


Revision 95277 - Directory Listing
Modified Wed Jun 18 10:13:07 2014 UTC (5 years, 2 months ago) by apaolo
Changes for the code review (https://codereview.appspot.com/103230043/) and bugfixing.

Revision 95244 - Directory Listing
Modified Wed Jun 11 16:49:10 2014 UTC (5 years, 2 months ago) by apaolo
Addressed the first batch of issues raised in the code review.

Revision 95243 - Directory Listing
Modified Wed Jun 11 16:48:31 2014 UTC (5 years, 2 months ago) by apaolo
Implementation complete. Eweasel should now fully support the Inspector Eiffel code analysis tool.

The next step is some minor code cleanup.

Revision 95242 - Directory Listing
Modified Wed Jun 11 16:47:41 2014 UTC (5 years, 2 months ago) by apaolo
First implementation of the new changes to eweasel for supporting testing Inspector Eiffel. Nothing has been tested yet, not even once.

Revision 94529 - Directory Listing
Modified Wed Feb 26 05:51:15 2014 UTC (5 years, 5 months ago) by manus
Made `gui' target compile by updating the name of XML_STRING_OUTPUT_STREAM to XML_STRING_8_OUTPUT_STREAM.


Revision 94526 - Directory Listing
Modified Tue Feb 25 22:40:00 2014 UTC (5 years, 5 months ago) by manus
Moved eweasel.ecf to source which makes more sense. Updated script to compile eweasel accordingly.


Revision 94521 - Directory Listing
Modified Tue Feb 25 16:48:47 2014 UTC (5 years, 5 months ago) by manus
Used min, not max since we want values between 0 and 255.


Revision 94520 - Directory Listing
Modified Tue Feb 25 16:40:36 2014 UTC (5 years, 5 months ago) by manus
Limited exit code to 255 since UNIX does not support any higher value.


Revision 94517 - Directory Listing
Modified Tue Feb 25 07:00:15 2014 UTC (5 years, 5 months ago) by manus
Changed behavior of eweasel to exit with an error code when there are some failed tests.


Revision 94515 - Directory Listing
Modified Tue Feb 25 06:10:39 2014 UTC (5 years, 5 months ago) by manus
Use ISE_PRECOMP for the path to precompiled ECF.
Use `l_eweasel' instead of `l_eweasel_63' which is version specific and the code is actually not.


Revision 90215 - Directory Listing
Modified Sat Dec 15 05:36:25 2012 UTC (6 years, 8 months ago) by manus
Made it compile with recent addition of `arguments' in EXECUTION_ENVIRONMENT.


Revision 88591 - Directory Listing
Modified Fri Apr 13 23:57:07 2012 UTC (7 years, 4 months ago) by manus
Removed obsolete calls.


Revision 88587 - Directory Listing
Modified Fri Apr 13 22:23:02 2012 UTC (7 years, 4 months ago) by manus
Added new instruction `unsetenv' to unset an environment variable. Useful for various testing of an execution depending on the setting of one or more environment variables.
Integrated David Hollenberg's contribution (see bug#17926) so that each worker thread of eweasel do not share the same environment variables, now they are specific to each thread, i.e. one test setting an environment variable will not pollute other running tests with the new environment variable.


Revision 88586 - Directory Listing
Modified Fri Apr 13 22:14:03 2012 UTC (7 years, 4 months ago) by manus
Removed useless call to `deep_twin' because caller of `execute' is ultimately {EW_EIFFEL_TEST_EXECUTOR} which setup the test with {EW_EIFFEL_TEST_SUITE}.initial_environment which already performs the deep_twin of the EW_TEST_ENVIRONMENT object.


Revision 88582 - Directory Listing
Modified Fri Apr 13 19:15:04 2012 UTC (7 years, 4 months ago) by manus
Added new instructions to unset an environment variable.


Revision 88570 - Directory Listing
Modified Thu Apr 12 21:50:34 2012 UTC (7 years, 4 months ago) by manus
Made the gui code worked with the latest version of eweasel. The tool is not fully working, nor completely up to date. 2 Known issues:
- ISE_LIBRARY is not defined/saved in the config file
- One has to load twice the catalog the first time around.
Updated the build project with win64 support and new version of EiffelBuild.


Revision 88547 - Directory Listing
Modified Thu Apr 12 05:34:29 2012 UTC (7 years, 4 months ago) by manus
Fixed typo in name.


Revision 88546 - Directory Listing
Modified Thu Apr 12 05:24:25 2012 UTC (7 years, 4 months ago) by manus
Reduced code duplication between Windows and Unix for the descendants of EW_EWEASEL_PROCESS and also made the behavior more consistent between the two platforms. Added a common ancestor abstraction EW_PROCESS_RESULT for the various EW_.._RESULT classes we had so that we can implement `next_result' in EW_EWEASEL_PROCESS and avoid code duplication.
Now for EW_C_COMPILATION and EW_SYSTEM_EXECUTION we read by chunks of 4096. Doing this speeds up the windows implementation by a factor of 2 when running the all test suite, but by a factor of 100+ when running a single test that has a lot of output.
There is still some duplication between EW_EWEASEL_PROCESS for Unix and Windows but I left it for another time.
On Windows changed the implementation of `abort' and `terminate' to always close the handles even if we are not able to terminate the process due to the windows API returning an error. That way we are sure to not leak any handles.


Revision 88545 - Directory Listing
Modified Wed Apr 11 23:09:00 2012 UTC (7 years, 4 months ago) by manus
Replaced ?= with an object test.


Revision 88474 - Directory Listing
Modified Tue Mar 27 00:41:00 2012 UTC (7 years, 4 months ago) by tedf
Fixed call on void exception. This was because the new change
in Thread library where a mutex must be created when a thread is
created.

review#7587134

Revision 87842 - Directory Listing
Modified Fri Nov 18 01:37:13 2011 UTC (7 years, 9 months ago) by manus
Removed the old code that was changing the directory of compilation since now the compiler handles that properly and removed old comment for the 4.2 Eiffel compiler.


Revision 86480 - Directory Listing
Modified Wed May 18 23:34:57 2011 UTC (8 years, 3 months ago) by manus
Removed the `-silent' option that prevents us from seeing what is happening during a C compilation output.


Revision 86466 - Directory Listing
Modified Tue May 17 13:16:20 2011 UTC (8 years, 3 months ago) by alexk
Added a new instruction to check a new command to prettify source code.

Revision 86465 - Directory Listing
Modified Tue May 17 10:28:10 2011 UTC (8 years, 3 months ago) by alexk
Removed local variable used to create objects to fill the tables.

Revision 85318 - Directory Listing
Modified Tue Jan 11 19:06:12 2011 UTC (8 years, 7 months ago) by alexk
Added a new constant for the default target name (the latter should be computed from ECF, but this is not the case yet).

Revision 85317 - Directory Listing
Modified Tue Jan 11 18:46:18 2011 UTC (8 years, 7 months ago) by alexk
Used a target name instead of a system name to compute path to W_code and F_code.

Revision 85224 - Directory Listing
Modified Mon Dec 27 15:05:50 2010 UTC (8 years, 7 months ago) by alexk
Updated EXEC_WORK and EXEC_FINAL environment variables as soon as system name is changed.

Revision 84528 - Directory Listing
Modified Thu Oct 7 20:52:26 2010 UTC (8 years, 10 months ago) by dhollen
Replaced calls to obsolete routine {ARRAY}.make with calls to `make_filled'.


Revision 84128 - Directory Listing
Modified Fri Aug 6 10:46:25 2010 UTC (9 years ago) by larryl
Added EW_CONFIG_INST. It's a command to specify project config file name and its target name.

First parameter is the config file name (such as "Ace" or "test.ecf") and second parameter, if present, is the name of the target within that configuration file.

Revision 84107 - Directory Listing
Modified Tue Aug 3 20:55:50 2010 UTC (9 years ago) by dhollen
Changed eweasel classes to use new once ("PROCESS") syntax.  Removed one useless
once_status: global note which was on a "do" routine instead of a "once" routine.


Revision 83724 - Directory Listing
Modified Mon Jun 28 14:54:12 2010 UTC (9 years, 1 month ago) by fivaa
Fixed Eweasel converter to not quote arguments of if/if not statments twice.


Revision 82505 - Directory Listing
Modified Wed Mar 3 21:24:55 2010 UTC (9 years, 5 months ago) by dhollen
Updated eweasel constant with compiler output for a missing precompile, so that it matches
what the compiler now reports.  This prevents eweasel tests involving missing
precompiles from hanging.


Revision 82020 - Directory Listing
Modified Thu Jan 7 13:06:02 2010 UTC (9 years, 7 months ago) by larryl
Updated Eweasel converter tool for new testing_eweasel library (which is base on Testing library), so generated new Eweasel test cases can be executed by AutoTest Tool

Details:
Changed converted testing function names, such as: in the past a test function name was {TEST_ATTACH}.test_attach001, now it's {TEST_ATTACH}.test_001
Convert "if" instruction as Eiffel language keyword "if"
Tags are converted and can be used in AutoTest Tool

Revision 81925 - Directory Listing
Modified Thu Dec 24 00:37:05 2009 UTC (9 years, 7 months ago) by manus
Removed obsolete calls to `get_current_id' and replace them with `current_thread_id'.


Revision 81906 - Directory Listing
Modified Wed Dec 23 17:21:09 2009 UTC (9 years, 8 months ago) by manus
Fixed an bug in the MT version of eweasel on Windows where if you call `terminate' and then `abort' (e.g. test#exec247) then the code in `abort' will close again the same handle. In ST mode it worked fine because the call to `cwin_exit_code_process' in `abort' with the old handle will return False, but in MT mode after we called `terminate', we could have spawned a new process and because windows reuse handles, the handles we just closed are now valid then `abort' can proceed and close the new handle, not the old one. Now we have protected the code by resetting the handle to NULL when we close them.


Revision 81905 - Directory Listing
Modified Wed Dec 23 17:17:22 2009 UTC (9 years, 8 months ago) by manus
Cosmetics.


Revision 81890 - Directory Listing
Modified Tue Dec 22 22:38:15 2009 UTC (9 years, 8 months ago) by manus
Fixed precondition violation in {DIRECTORY}.recursive_delete because the directory might not exist anymore (this is the case when in the tcf you have `abort_compile' followed by `cleanup_compile' (e.g test#exec247)).


Revision 81889 - Directory Listing
Modified Tue Dec 22 22:37:06 2009 UTC (9 years, 8 months ago) by manus
Fixed a precontion violation in `queue.forth' because we might call `queue.remove' on the last element and therefore we will be after.


Revision 80295 - Directory Listing
Modified Mon Aug 17 04:48:51 2009 UTC (10 years ago) by manus
Made it compile with the latest changes in the testing library.


Revision 79731 - Directory Listing
Modified Sat Jul 11 12:28:28 2009 UTC (10 years, 1 month ago) by fivaa
Moved Eweasel setup routine into test set ancestor since it is the same for every converted test.


Revision 78737 - Directory Listing
Modified Mon May 18 05:01:17 2009 UTC (10 years, 3 months ago) by larryl
Adapted for new eweasel command `copy_file' (see revision#78075), now the results of running `melt091' in Testing tool or command console are same.

Revision 78707 - Directory Listing
Modified Fri May 15 16:57:13 2009 UTC (10 years, 3 months ago) by dhollen
Fixed eweasel bug where actual validity errors or syntax errors displayed when
a test failed were sometimes not sorted correctly.


Revision 78671 - Directory Listing
Modified Wed May 13 17:14:28 2009 UTC (10 years, 3 months ago) by dhollen
Updated eweasel source code and config file to use standard syntax.


Revision 78542 - Directory Listing
Modified Thu May 7 11:58:49 2009 UTC (10 years, 3 months ago) by larryl
Adapted converter for new keyword `copy_file'

Revision 78540 - Directory Listing
Modified Thu May 7 11:51:25 2009 UTC (10 years, 3 months ago) by larryl
Made eweasel convert work on Unix platforms. When convert all tcfs, sort all items in {DIRECTORY}. Otherwise, on Windows, items in `l_dir' is alphabetical, but not case for Unix platforms. Un-sorted list will cause eweasel converter contain only one test case in one generated Eiffel class.

Adapted converter to convert new keyword `copy_file'

Revision 78452 - Directory Listing
Modified Thu Apr 30 08:38:36 2009 UTC (10 years, 3 months ago) by larryl
Query and set $ISE_PLAFORM automatically, so test cases can be run on Linux 32bits also

Revision 78346 - Directory Listing
Modified Thu Apr 23 19:56:28 2009 UTC (10 years, 4 months ago) by dhollen
Replace calls to `putstring' by `put_string' and similarly for other
routines that used an old name without an underscore.


Revision 78303 - Directory Listing
Modified Fri Apr 17 23:04:56 2009 UTC (10 years, 4 months ago) by dhollen
Changed how eweasel handles missing test_end instructions and missing newline
at end of file in a test control file.

Old behavior:  Missing newline at EOF was allowed but any instruction on that
line was not read.  A missing test_end instruction was allowed but the test
for this condition didn't allow the test_end to be anywhere except the last
line of the file.

New behavior:  A missing test_end instruction is an error.  A test_end instruction
anywhere in the file is allowed - test_end does not have to be the last instruction.
A missing newline at EOF is an error, but any instruction on the last partial line
will be processed before the error is reported.


Revision 78265 - Directory Listing
Modified Thu Apr 16 03:47:27 2009 UTC (10 years, 4 months ago) by larryl
Made test cases can be run in Windows 64btis also

Revision 78252 - Directory Listing
Modified Wed Apr 15 17:49:44 2009 UTC (10 years, 4 months ago) by alexk
Ensured that a nul file is represented by a non-void string as otherwise an access on void target occurs in {EW_EXECUTE_INST}.execute on test#exec021.

Revision 78075 - Directory Listing
Modified Sun Apr 5 04:47:14 2009 UTC (10 years, 4 months ago) by manus
Added new instructions `copy_file' which is similar to `copy_bin' except that it lets you copy file
  from anywhere to anywhere.


Revision 78074 - Directory Listing
Modified Sun Apr 5 04:43:32 2009 UTC (10 years, 4 months ago) by manus
Cosmetics: removed semicolons.


Revision 77885 - Directory Listing
Modified Wed Mar 25 13:23:50 2009 UTC (10 years, 4 months ago) by larryl
Use PLAIN_TEXT_FILE instead of RAW_FILE, so eweasel converter tool generate Eiffel classes without ^M

Revision 77701 - Directory Listing
Modified Wed Mar 11 22:59:57 2009 UTC (10 years, 5 months ago) by dhollen
Fixed bug in eweasel that caused it to crash if the input file for
an execute_work or execute_final instruction did not exist.  Now it 
reports that the input file does not exist and the test fails.


Revision 77689 - Directory Listing
Modified Wed Mar 11 00:26:10 2009 UTC (10 years, 5 months ago) by manus
Added a protection to not create `in_file' if the input file does not exist as if you do in a tcf file
  `execute_final whatever output' and that `whatever' does not exist, it simply terminates eweasel
  which is not good.


Revision 77685 - Directory Listing
Modified Tue Mar 10 18:42:12 2009 UTC (10 years, 5 months ago) by manus
Use new syntax for object test.


Revision 77349 - Directory Listing
Modified Thu Feb 26 10:41:14 2009 UTC (10 years, 5 months ago) by jfiat
Fixed compilation issue

Revision 77058 - Directory Listing
Modified Sat Feb 7 08:15:31 2009 UTC (10 years, 6 months ago) by manus
Fixed code that does not compile anymore because now CELL only offers `put' as creation procedure
  since `default_create' cannot be used in Void safe mode.


Revision 76646 - Directory Listing
Modified Mon Jan 12 11:50:08 2009 UTC (10 years, 7 months ago) by larryl
Added {EW_EQA_WINDOWS_SETUP}.`write_all_converted_classes_to_file' for new hidden "eweasel conversion" tool in Eiffel Studio

Revision 76557 - Directory Listing
Modified Fri Jan 2 23:35:44 2009 UTC (10 years, 7 months ago) by manus
Added `-verbose' option so that in output of tests we see what the compiler has compiled so far
  which is quite useful especially for incrementality tests.


Revision 76162 - Directory Listing
Modified Mon Dec 15 07:01:55 2008 UTC (10 years, 8 months ago) by manus
Use new name of < operator in EiffelBase to use the alias version instead of `infix'.


Revision 75750 - Directory Listing
Modified Wed Nov 19 07:07:44 2008 UTC (10 years, 9 months ago) by larryl
Reverted the change in revision#75705, so the compare instruction is strict 

Revision 75749 - Directory Listing
Modified Wed Nov 19 04:20:20 2008 UTC (10 years, 9 months ago) by larryl
Cosmetic

Revision 75705 - Directory Listing
Modified Tue Nov 18 11:41:09 2008 UTC (10 years, 9 months ago) by larryl
Added {EW_EQA_UNIX_SETUP} for Linux system's eweasel testing preparation (on Windows, we have {EW_EQA_WINDOWS_SETUP} already)

Made {EW_COMPARE_INST} equal_files doesn't care about the differences of end line marks between Linux and Windows, because Windows system using %R%N, but Linux using %N

Added {EW_TEST_ENVIRONMENT}.substitute_recursive

Revision 75664 - Directory Listing
Modified Mon Nov 17 08:19:35 2008 UTC (10 years, 9 months ago) by larryl
Made {EW_EQA_TEST_EWEASEL_TCF_CONVERTER} read class template file from delivery automatically

Cosmetics

Revision 75662 - Directory Listing
Modified Mon Nov 17 06:33:14 2008 UTC (10 years, 9 months ago) by larryl
Improved tcf converter, now it can convert test cases to different files instead of one big file (separated by test catalogs, such as: `agent' `array' `attach'...)

Revision 75502 - Directory Listing
Modified Tue Nov 11 02:40:03 2008 UTC (10 years, 9 months ago) by larryl
Fixed various issues to make the new eweasel testing results same as the old eweasel testing results

Fixed {EW_DELETE_INST} for fake002
Fixed {EW_EQA_WINDOWS_SETUP} for fixed119
Fixed {EW_EQA_TEST_CONTROL_INSTRUCTIONS}.execute_final and {EW_EQA_TEST_EWEASEL_TCF_CONVERTER} for expanded003
Fixed {EW_EQA_TEST_CONTROL_INSTRUCTIONS}.system for incr222
Fixed {EW_EQA_TEST_CONTROL_INSTRUCTIONS}.copy_raw  incr245
Fixed {EW_EQA_TEST_CONTROL_INSTRUCTIONS}.if_  and if_not for rdtp001


Revision 75439 - Directory Listing
Modified Thu Nov 6 07:59:13 2008 UTC (10 years, 9 months ago) by larryl
Fixed various issues to make the new eweasel testing results same as the old eweasel testing results (Fixed assert001, assert002, ccomp024, config001)

Made tcf converter can ignore non exist test cases when generating new Eiffel test cases

Revision 75338 - Directory Listing
Modified Wed Oct 29 08:57:28 2008 UTC (10 years, 9 months ago) by larryl
Made {EW_EQA_WINDOWS_SETUP} reading environment values automatically

Revision 75337 - Directory Listing
Modified Wed Oct 29 07:38:47 2008 UTC (10 years, 9 months ago) by larryl
Renamed classes' names, made eweasel compile on Linux

Revision 75316 - Directory Listing
Modified Tue Oct 28 10:23:14 2008 UTC (10 years, 9 months ago) by larryl
Removed useless locals and feature

Revision 75315 - Directory Listing
Modified Tue Oct 28 07:52:00 2008 UTC (10 years, 9 months ago) by larryl
Adapted all original eweasel testing instructions (including catalog instructions), so end users can write testing cases in normal Eiffel classes by inheriting {EW_EQA_TEST_CONTROL_INSTRUCTIONS}

Added {EW_TEST_EWEASEL_TCF_CONVERTER} which can convert old plain text file tcfs to new Eiffel class testing control files

The major changes in original eweasel sources codes are:
a) Added classes under $EWEASEL\source\eqa
b) Added EW_ prefix to all original eweasel classes names
c) The classes have changes except class name changing are:
  i.EW_COPY_INST
  ii.EW_COPY_SUB_INST
  iii.EW_INSTRUCTION_TABLE
  iv.EW_KEYWORD_CONST
  v.EW_EIFFEL_EWEASEL_TEST
d) Made "eweasel.ecf" can be used as a library


Revision 73917 - Directory Listing
Modified Sun Jun 22 22:08:18 2008 UTC (11 years, 2 months ago) by dhollen
Changed eweasel to display the raw compiler output if the actual
compilation result status is "unknown".  This should help in debugging
any problems.  Windows version changed but not tested (should work).


Revision 73916 - Directory Listing
Modified Sun Jun 22 20:43:09 2008 UTC (11 years, 2 months ago) by dhollen
Removed class that is no longer used and also won't be needed in the future
because C memory can be allocated using routines in class POINTER.


Revision 73915 - Directory Listing
Modified Sun Jun 22 18:36:35 2008 UTC (11 years, 2 months ago) by dhollen
Added eweasel option -max_c_processes to set the maximum number of
simultaneous processes to use for C compilations for any one test.
Default if not specified or if <= 0 is number of processors on
machine.  Can be useful to prevent C compilation failures due to
running out of memory, especially when using MT version of eweasel.
Windows version modified but not tested (should work).


Revision 73890 - Directory Listing
Modified Thu Jun 19 17:28:22 2008 UTC (11 years, 2 months ago) by manus
Fixed a byte missing read in MT version of eweasel. This was because we
  were passing the address of an attribute to blocking externals and if a
  GC cycle was performed the wrong location was used to store the value
  computed by the C external. Now we use a local variable and then store
  the attribute.


Revision 73872 - Directory Listing
Modified Thu Jun 19 05:54:39 2008 UTC (11 years, 2 months ago) by manus
Added a sleep of 1ms while waiting for the process to exit as otherwise
  it makes an active wait and it slows down the other threads doing test.


Revision 73871 - Directory Listing
Modified Thu Jun 19 05:50:27 2008 UTC (11 years, 2 months ago) by manus
It makes more sense to use RAW_FILE to delete a file.


Revision 73870 - Directory Listing
Modified Wed Jun 18 23:33:15 2008 UTC (11 years, 2 months ago) by manus
Because windows does not seem to remove the lock on files owned by a killed
  process immediately after the process is killed, we have to redefine abort
  to cancel the Eiffel compilation before trying to kill it.
  This allows the removal of the test directory for eweasel test#valid012 for
  example.


Revision 73869 - Directory Listing
Modified Wed Jun 18 23:31:31 2008 UTC (11 years, 2 months ago) by manus
Use Precursor instead of replicating inherited `terminate' routine.


Revision 73867 - Directory Listing
Modified Wed Jun 18 19:15:20 2008 UTC (11 years, 2 months ago) by manus
Fixed `close' which was not resetting `std_input', `std_output' and `savefile' to their
  default value once closed. As a consequence, we get random crash in eweasel in multithreaded
  mode. Once we added the reset, those random crashes disappeared. It is definitely strange
  that those crashes did not occur in single threaded mode.


Revision 73863 - Directory Listing
Modified Wed Jun 18 18:12:23 2008 UTC (11 years, 2 months ago) by manus
Removed call to CloseHandle from `duplicate_handle' so that we can properly do the error handling which
  has been added via the empty `display_error' routine which can be modified when debugging is necessary.


Revision 73862 - Directory Listing
Modified Wed Jun 18 18:07:40 2008 UTC (11 years, 2 months ago) by manus
Cosmetics (removed white spaces)


Revision 73861 - Directory Listing
Modified Wed Jun 18 15:16:28 2008 UTC (11 years, 2 months ago) by manus
Fixed `read_line' and `read_character' to repeat the read in case the read is successful and
  zero bytes were read. This fixes test#fixed099 which was always failing when running the complete
  catalog file.
Properly implemented `terminate' which waits until the termination of the process before finishing.


Revision 73854 - Directory Listing
Modified Tue Jun 17 01:43:23 2008 UTC (11 years, 2 months ago) by dhollen
Changed eweasel to use newly added {EXECUTION_ENVIRONMENT}.sleep instead
of its own C externals.


Revision 73834 - Directory Listing
Modified Fri Jun 13 00:34:04 2008 UTC (11 years, 2 months ago) by dhollen
Added new routine {EWEASEL_PROCESS}.abort, which does what `terminate' currently
does (close pipes and forcibly terminate the process).  Changed existing routine
`terminate' to not kill the child process, since this is incorrect when we
expect the child to terminate normally, and instead just wait for child to
terminate and get its status.  Changed callers that really want `abort' to
call it instead of `terminate'.

Windows version of {EWEASEL_PROCESS}.terminate needs to be fixed by someone
who knows how.


Revision 73828 - Directory Listing
Modified Thu Jun 12 03:01:55 2008 UTC (11 years, 2 months ago) by dhollen
Removed unused routines in eweasel "os" cluster.


Revision 73827 - Directory Listing
Modified Thu Jun 12 02:36:08 2008 UTC (11 years, 2 months ago) by dhollen
Changed feature `delete_directory_tree' in eweasel class
OPERATING_SYSTEM to use the Windows implementation, which is actually
platform-independent.  Removed Unix-specific implementation of this
routine, which was calling `system', which is not thread-safe.


Revision 73826 - Directory Listing
Modified Thu Jun 12 02:21:09 2008 UTC (11 years, 2 months ago) by dhollen
Changed {UNIX_EXTERNALS}.unix_fork_process routine used by eweasel to
call `eif_thread_fork' instead of `fork', now that the former is
defined to be the latter in the single-threaded case.
`eif_thread_fork' uses GC synchronization in the multi-threaded case
to ensure that no other thread holds a mutex, which could cause a deadlock
in the child process.


Revision 73821 - Directory Listing
Modified Wed Jun 11 19:14:37 2008 UTC (11 years, 2 months ago) by dhollen
Changed Unix version of EWEASEL_PROCESS to use `read_line_thread_aware'
to avoid preventing a GC cycle from occurring while we wait for input from
the spawned process.  This speeds up MT eweasel since tests do not wait
unnecessarily.  Windows version of this class may still need to be fixed.


Revision 73818 - Directory Listing
Modified Wed Jun 11 15:30:06 2008 UTC (11 years, 2 months ago) by dhollen
Added eweasel -noorder and -noclean options, which can be used to
override -order and -clean options that appear earlier on the command
line.  Updated help output and cleaned it up a bit.


Revision 73816 - Directory Listing
Modified Wed Jun 11 14:22:43 2008 UTC (11 years, 2 months ago) by dhollen
Changed eweasel to display results of each test as soon as it is
completed, by default.  Test results may thus appear in a semi-random
order.  Added -order option to display test results in catalog order,
which was the previous behavior.


Revision 73809 - Directory Listing
Modified Mon Jun 9 20:43:15 2008 UTC (11 years, 2 months ago) by dhollen
Removed unused local.


Revision 73800 - Directory Listing
Modified Mon Jun 9 14:57:01 2008 UTC (11 years, 2 months ago) by dhollen
Changed MT eweasel so that if N tests are selected and maximum number
of worker threads is MAX, it will start min(N, MAX) worker threads
instead of always starting MAX worker threads.  No point in starting
more worker threads than there are tests to be executed.


Revision 73797 - Directory Listing
Modified Fri Jun 6 15:59:34 2008 UTC (11 years, 2 months ago) by dhollen
First release of multithreaded eweasel (experimental).

Changed eweasel.ecf to have two targets - eweasel_st (single-threaded) and
   eweasel_mt (multithreaded), which have root classes EWEASEL_ST and
   EWEASEL_MT (descendants of EWEASEL).  They produce executables eweasel
   and eweasel-mt, respectively.
Changed install scripts to build both ST and MT versions (Windows install
   script not tested).
Added option -max_threads to specify maximum number of worker threads to
   use.  It is ignored for ST eweasel.  Default is -1, meaning run all tests
   in main thread (no workers).  Value of 0 will currently cause hang.
Changed all C externals on Unix side to be "C inline" in new class 
   UNIX_EXTERNALS, to eliminate need for separate .c files.

Implementation Issues:
MT eweasel currently launches maximum number of threads allowed, even if 
   only a few tests are selected.  Will be fixed soon.
MT eweasel currently displays completed tests in catalog order.
   It will be changed to display completed tests as soon as they finish 
   (by default) and a new -order option will be added to get the current 
   behavior.
Should call EiffelBase sleep routine instead of rolling my own, but it is
   not available yet.
MT eweasel should perhaps use process library but ST version cannot, so for
   now both versions share the same code.

Known Limitations:
Max_threads value of 0 will cause a hang on MT version (will later mean 
   "number of processors online" on machine).
MT eweasel is not as fast as it could be because {FILE}.read_character and
   {FILE}.read_line call externals that are not marked "blocking".  This
   can cause every thread to stop on GC synchronization while one thread 
   waits for another line or character of output from a spawned subprocess.
   Thread-aware versions of these routines should be available soon.
MT eweasel might use a lot of memory and cause thrashing if too many large C
   compilations are done at once from multiple tests.
There are no resource limits for individual tests, which cause thrashing.
MT eweasel is not very reliable yet.  Sometimes tests fail when they should
  pass and sometimes there are hangs.


Revision 73720 - Directory Listing
Modified Mon May 26 20:43:23 2008 UTC (11 years, 2 months ago) by dhollen
Updated eweasel to not check for some strings defined in 
EIFFEL_COMPILER_CONSTANTS that compiler has not generated for a long time.
Adjusted EIFFEL_COMPILATION and EIFFEL_COMPILATION_RESULT accordingly.


Revision 73684 - Directory Listing
Modified Thu May 22 23:49:16 2008 UTC (11 years, 3 months ago) by dhollen
Fixed eweasel STRING constant `Aborted_prefix' to have correct value,
to match what compiler prints when session is aborted.  Previous value of
constant was "ISE Eiffel 5: Session aborted".


Revision 73607 - Directory Listing
Modified Sun May 18 22:32:12 2008 UTC (11 years, 3 months ago) by dhollen
Changed eweasel to detect "project needs precompile which is not compiled"
response from compiler and generate a suspended compilation result.  This
allows a test which uses a precompiled library that has not been compiled
to fail with a "missing precompile" error instead of hanging indefinitely.
Windows version should work but was only checked carefully (not compiled
or tested).


Revision 73603 - Directory Listing
Modified Sat May 17 04:00:50 2008 UTC (11 years, 3 months ago) by dhollen
Made various improvements to command line version of eweasel:
Improved and clarified output of -help option.
Changed to only display one line message telling how to get help instead of
   complete usage message if there are any invalid options.
Improved error messages for invalid filters (invalid keyword or too many
   filter values).
Added filtering on test directory name, to allow options like
   -filter 'dir exec001' since test dir name is easier to remember and type.
Added filter type synonyms "directory" for "dir" and "keyword" for "kw" to
   allow clearer command lines.


Revision 73594 - Directory Listing
Modified Fri May 16 22:14:05 2008 UTC (11 years, 3 months ago) by dhollen
Removed unused routines from C_MEMORY_ALLOCATION, some of which
referenced mem_alloc.h, which is not found from the include in the
eweasel configuration file.  This change fixes a C compilation failure
when freezing eweasel (finalizing already worked because the unused
routines got removed by dead code removal).


Revision 73581 - Directory Listing
Modified Fri May 16 19:00:50 2008 UTC (11 years, 3 months ago) by dhollen
Made eweasel compile with full class checking, at least on Unix.


Revision 72268 - Directory Listing
Modified Fri Feb 8 23:49:14 2008 UTC (11 years, 6 months ago) by manus
Forgot to commit new class at rev#72267.


Revision 72267 - Directory Listing
Modified Fri Feb 8 23:48:40 2008 UTC (11 years, 6 months ago) by manus
Updated eweasel so that errors are sorted before comparing the expected results from the tcf file.
  That way a test will only fail if the errors being reported are really different, not just if they
  have a different order.


Revision 70807 - Directory Listing
Modified Tue Oct 23 17:15:13 2007 UTC (11 years, 10 months ago) by tedf
Added a space before `had_panic' testing string. So that tests using the new class names with "PANIC" don't fail.

Revision 69405 - Directory Listing
Modified Thu Jul 12 18:05:30 2007 UTC (12 years, 1 month ago) by manus
Fixed VD80 warnings by fixing the filename to match the classname.


Revision 68273 - Directory Listing
Modified Fri May 11 23:05:57 2007 UTC (12 years, 3 months ago) by martins
Reverted wrong commit.

Revision 68272 - Directory Listing
Modified Fri May 11 22:47:31 2007 UTC (12 years, 3 months ago) by martins
Tests nested generics and proper validity checking of creation readiness.

Revision 65297 - Directory Listing
Modified Thu Nov 30 20:22:33 2006 UTC (12 years, 8 months ago) by manus
Moved from trunk/Src/eweasel to trunk/eweasel so that a simple checkout of the source code is not penalized by the lenghty process of checking out all the tests of eweasel.

Revision 65296 - Directory Listing
Added Thu Nov 30 19:56:25 2006 UTC (12 years, 8 months ago) by manus
Original Path: trunk/Src/eweasel/source
Initial revision for the eweasel delivery provided by David Hollenberg
  from the University of Southern California under the GPL v2.0 license.


  ViewVC Help
Powered by ViewVC 1.1.23