I am running into an issue where the 'ament test' is indicating an error, although, there is no error from what I can tell. When running the test, it displays 'The test did not generate a result file' although it really does. In addition, this is only reproducible with our continuous integration server but only some of the time.
I am not very familiar with python, but looking into run_test.py I am seeing that it will generate that error statement, if it believes the test is either timed out or throws an exception. I have not setup a timeout, so I believe it should use the default with is 60 seconds. From the logs below, I am just shy of 300 ms for the test. Here is the results that I have captures thus far.
[10:09:46][Step 3/3] /home/utilite/BuildAgent/work/6fb3b0969bfa563f/PerceptionStack/build/velodyne_pointcloud/test_results/velodyne_pointcloud/test_Convert.gtest.xml report processed: 2 suites, 8 tests
[10:09:46][Step 3/3] 2: -- run_test.py: invoking following command in '/home/utilite/BuildAgent/work/6fb3b0969bfa563f/PerceptionStack/src/sensors/velodyne/velodyne_pointcloud':
[10:09:46][Step 3/3] 2: - /home/utilite/BuildAgent/work/6fb3b0969bfa563f/PerceptionStack/build/velodyne_pointcloud/test_VelodynePacket2PointCloud --gtest_output=xml:/home/utilite/BuildAgent/work/6fb3b0969bfa563f/PerceptionStack/build/velodyne_pointcloud/test_results/velodyne_pointcloud/test_VelodynePacket2PointCloud.gtest.xml
[10:09:46][Step 3/3] 2: Running main() from gmock_main.cc
[10:09:46][Step 3/3] 2: [==========] Running 5 tests from 1 test case.
[10:09:46][Step 3/3] 2: [----------] Global test environment set-up.
[10:09:46][Step 3/3] 2: [----------] 5 tests from TestVelodynePacket2PointCloud
[10:09:46][Step 3/3] 2: [ RUN ] TestVelodynePacket2PointCloud.Constructor_invalidParameter
[10:09:46][Step 3/3] 2: /home/utilite/BuildAgent/work/6fb3b0969bfa563f/PerceptionStack/src/sensors/velodyne/velodyne_pointcloud/src/lib/VelodynePacket2PointCloud.cpp:58
[10:09:46][Step 3/3] 2: [ OK ] TestVelodynePacket2PointCloud.Constructor_invalidParameter (13 ms)
[10:09:46][Step 3/3] 2: [ RUN ] TestVelodynePacket2PointCloud.unpack_invalidLaserCount
[10:09:46][Step 3/3] 2: [ OK ] TestVelodynePacket2PointCloud.unpack_invalidLaserCount (13 ms)
[10:09:46][Step 3/3] 2: [ RUN ] TestVelodynePacket2PointCloud.unpack_validLaserCount_butInvalidAzimuth
[10:09:47][Step 3/3] 2: [ OK ] TestVelodynePacket2PointCloud.unpack_validLaserCount_butInvalidAzimuth (264 ms)
[10:09:47][Step 3/3] 2: [ RUN ] TestVelodynePacket2PointCloud.unpack_validLaserCount_and_validAzimuth_and_validDistance
[10:09:47][Step 3/3] 2: [ OK ] TestVelodynePacket2PointCloud.unpack_validLaserCount_and_validAzimuth_and_validDistance (299 ms)
[10:09:47][Step 3/3] 2: [ RUN ] TestVelodynePacket2PointCloud.unpack_validLaserCount_and_validAzimuth_but_invalidDistance
[10:09:47][Step 3/3] velodyne_pointcloud
[10:09:47][velodyne_pointcloud] test_VelodynePacket2PointCloud.gtest.missing_result
[10:09:47][test_VelodynePacket2PointCloud.gtest.missing_result] The test did not generate a result file.
[10:09:47][Step 3/3] /home/utilite/BuildAgent/work/6fb3b0969bfa563f/PerceptionStack/build/velodyne_pointcloud/test_results/velodyne_pointcloud/test_VelodynePacket2PointCloud.gtest.xml report processed: 1 suite, 1 test
[10:09:47][Step 3/3] 2: [ OK ] TestVelodynePacket2PointCloud.unpack_validLaserCount_and_validAzimuth_but_invalidDistance (299 ms)
[10:09:47][Step 3/3] 2: [----------] 5 tests from TestVelodynePacket2PointCloud (889 ms total)
[10:09:47][Step 3/3] 2: [----------] Global test environment tear-down
[10:09:47][Step 3/3] 2: [==========] 5 tests from 1 test case ran. (891 ms total)
[10:09:47][Step 3/3] 2: [ PASSED ] 5 tests.
[10:09:47][Step 3/3] 2: -- run_test.py: return code 0
[10:09:47][Step 3/3] 2: -- run_test.py: verify result file '/home/utilite/BuildAgent/work/6fb3b0969bfa563f/PerceptionStack/build/velodyne_pointcloud/test_results/velodyne_pointcloud/test_VelodynePacket2PointCloud.gtest.xml'
I did notice in the script, there was some coupling to Jenkins for the results, so I am curious if there is some integration issues with 'Team City'.
Also, it looks like it is printing out the error before the command is even executed, however, my python skills could be misleading me to that conclusion.
I have replaced the command ament test with just running ctest in the appropriate directories and have not seen an issue up to this point, which makes me believe the python scripts have an issue.
Any ideas of what should be investigated?
Thanks,
Dennis