PR# 19162 Autotest won't generate tests

Problem Report Summary
Submitter: colin-adams
Category: EiffelTest
Priority: Medium
Date: 2015/11/30
Class: Bug
Severity: Serious
Number: 19162
Release: 15.11
Confidential: No
Status: Analyzed
Environment: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36
Synopsis: Autotest won't generate tests

I'm trying to generate automatic tests from open classes. This fails.

At Manu's suggestion I tried substituting class STRING instead. Again, no classes get generated.

Attached is a screencast.
To Reproduce
Follow the screencast.
Problem Report Interactions
From:colin-adams    Date:2015/12/01    Download   
Reset tools layout restore the Groups pane.

From:colin-adams    Date:2015/12/01    Download   
Changing to void_safety=none causes compilation to work (clearly autotest is still not void-safe aware. So I have to add preconditions :-( ).

But even after subsequently compiling from scratch, Groups pane will not appear.

From:colin-adams    Date:2015/12/01    Download   
So I tried the following experiment.

I create a class AUTOTEST and made it the root class. It looks like this:

	description: "Summary description for {AUTOTEST}."
	author: ""
	date: "$Date$"
	revision: "$Revision$"



feature {NONE} -- Initialization

			-- Initialization for `Current'.
			-- nothing to do

feature -- Classes under test

	gmp_integer: detachable GMP_INTEGER

	gmp_rational: detachable GMP_RATIONAL

	gmp_float: detachable GMP_FLOAT


I then opened GMP_INTEGER, GMP_FLOAT and GMP_RATIONAL in the editor, went through the generate open classes dialog, and it works (that is, it generates some tests, some pass, some fail, some are invalid).

I still can't see the Groups pane though, so I can't open additional classes that I want to test (remaining problem one).
And having to create a special class for a root is a real pain (remaining problem two)
And I'm also interested in extracted classes. How am I supp
Output truncated, Click download to get the full message

From:manus_eiffel    Date:2015/12/01    Download   
This seems to indicate an error somewhere. No groups pane means there was no compilation or an error at degree 6. What if you compile from scratch?

From:colin-adams    Date:2015/12/01    Download   
I just tried with ANY.
Now NO classes are visible (that make sense), the Groups pane won't appear, and attempting to select generate open classes does nothing (the dialog doesn't even appear).

From:manus_eiffel    Date:2015/12/01    Download   
Have you tried to specify ANY as root class?

Otherwise the base_testing library is just for EiffelBase, a collection of helper classes that makes it easy to test EiffelBase and other libraries. What matters is the inclusion of the testing library.

From:colin-adams    Date:2015/12/01    Download   
So the first difference I found between my ECF and yours was the void_safety setting. I thankfully set to void_safety="all". As expected, this made no difference.

The second difference was the root class. Mine had all classes. Yours had AUTOTEST. 
The third difference was that this base_testing library was not in my system (EiffelStudio had added the testing library, but not the base_testing library).

After making those two changes, I can now generate tests for open classes, when the open class is STRING. But I can no longer even see my own classes as the are not compiled into the system (not reachable from class AUTOROOT).

So I changed back to all classes root.
Now I can see my classes again, but I can't generate classes for open tests (mine, or STRING).

I really don't know WHAT I'm supposed to do.

From:colin-adams    Date:2015/11/30    Download   
It works with testing-safe.ecf.

Note that I was using a non-void-safe ECF in my case, as the tutorial says autotest won't work with void-safe projects.

Obviously the tutorial is outdated.

From:manus_eiffel    Date:2015/11/30    Download   
Make sure you have write permission to $ISE_LIBRARY/library/base/testing.

From:manus_eiffel    Date:2015/11/30    Download   
I followed your steps using the EiffelBase testing configuration file on Windows and it worked. I tried on Mac OS X (which is the same as Linux) and it worked to. 

Could you try to repeat the same steps by compiling the project in $ISE_LIBRARY/library/base/testing/testing-safe.ecf? To verify the issue is not related to the configuration.

From:colin-adams    Date:2015/11/30    Download   
Screencast attached.

Attachment: Screencast from 30-11-15 13:30:58.webm     Size:896810
From:manus_eiffel    Date:2015/11/30    Status: Analyzed    Download   
The attachment was not included. You are required to click upload after browsing for the file before submitting. Sorry for the inconvenience.