GMUEClab/ecj

Unable to build on Windows due to test failures

remz1337 opened this issue · 4 comments

Hello, I'm trying to build this library on Windows 10 with Maven 3 and Java 1.8 but some tests are failing.

I have identified the root causes:

  • The usage of /dev/null --> this is not supported in Windows. A quick search through the src directory found a couple of cases
  • Assertion failure (line 127 of SimpleConstructionRuleTest.java) --> not sure what is the issue here
  • Calling external commands: in AppsTest, the command.params file tries to call Python. I'm guessing it fails since I don't have Python on my Windows machine.

Thanks

Hi Rémi,

Interesting point about the Python call. That's an example app I recently added that is designed specifically to run external shell commands as part of fitness evaluation. It's not immediately obvious to me how to make it platform-independent—perhaps we should consider omitting it from the main test suite.

I admit that our lab doesn't often test on Windows, focusing on Linux and macOS.

Hello, yes either omit it from the main test suite or do a check if python is installed first

Fixed the unit tests that use UNIX-specific paths like /dev/null and /tmp. They now run on Windows.

I could not reproduce the SimpleConstructionRuleTest failure on my Windows 10 VM.

Leaving the example that invokes Python as-is, since the example is meant to demonstrate invoking an external application, and I can't think of a simpler alternative. I considered disabling that test, but it's in the System test suite for a reason. I'm leaving it in for now for the test coverage it gives us, though this does unfortunately still mean it breaks on a typical Windows install.

Thanks alot! Yes I agree it makes more sense to keep the Python test. It's pretty obvious why it would fail if you don't have Python installed