Hi William,

On 13.09.2014 00:59, William Blevins wrote:

    # No result if tools not available
    test.no_result( condition=(test.where_is( 'javac' ) is None) )
    test.no_result( condition=(test.where_is( 'jar' ) is None) )
    # This test is known to fail as of July 2014; see Tigris issue
    1771 and issue 2931.
    # Once the underlying issue is corrected, this test should be
    re-enabled.
    test.skip_test('Skipping derived-source test until issue 1771 is
    fixed.\n')


Based on the above code snippet, I don't understand how that is possible. If Java is not installed, then the test should be a "no result".


and here is what the documentation of TestCmd.no_result() says about this:

def no_result(self = None, condition = 1, function = None, skip = 0):
    """Causes a test to exit with no valid result.

    By default, the no_result() method reports NO RESULT for the test
    and exits with a status of 2.  If a condition argument is supplied,
    the test fails only if the condition is true.
    """

The point here is that the no_result() method stops the current test immediately with a sys.exit(2)...so in the case where one of "javac/jar" can't be found, the skip_test() isn't reached.
That's where the exit code of "2" comes from, I guess.

For an immediate fix, I'd like to suggest simply moving the skip_test() line above the no_result()s. Does that sound reasonable?

Regards,

Dirk

_______________________________________________
Scons-dev mailing list
[email protected]
https://pairlist2.pair.net/mailman/listinfo/scons-dev

Reply via email to