Skip to content

Bug: Example fails but related test passes #476

Description

@pelesh

Description how to reproduce the bug

Example ThreeBusConstantSource_pdsim experiences several errors that seem to be fatal but the example reports success upon exit (returns 0). Here is the output:

$ ctest -VV -R ThreeBusConstantSource_pdsim
UpdateCTestConfiguration  from :/Users/55y/src/gridkit/build-tmp/DartConfiguration.tcl
Parse Config file:/Users/55y/src/gridkit/build-tmp/DartConfiguration.tcl
UpdateCTestConfiguration  from :/Users/55y/src/gridkit/build-tmp/DartConfiguration.tcl
Parse Config file:/Users/55y/src/gridkit/build-tmp/DartConfiguration.tcl
Test project /Users/55y/src/gridkit/build-tmp
Constructing a list of tests
Done constructing a list of tests
Updating test list for fixtures
Added 0 tests to meet fixture requirements
Checking test dependency graph...
Checking test dependency graph end
test 30
    Start 30: ThreeBusConstantSource_pdsim

30: Test command: /Users/55y/src/gridkit/build-tmp/application/PhasorDynamics/DynamicSimulation "ThreeBusConstantSource.solver.json"
30: Working Directory: /Users/55y/src/gridkit/build-tmp/examples/PhasorDynamics/Tiny/ThreeBus/ConstantSource
30: Test timeout computed to be: 1500
30: [ERROR] 
30:     Invalid device class: "Load". 
30:     See the "devices" list in your JSON file.
30: [ERROR] 
30:     Invalid device class: "BusToSignalAdapter". 
30:     See the "devices" list in your JSON file.
30: [WARNING] A component has returned a nullptr Jacobian.
30: [WARNING] A component has returned a nullptr Jacobian.
30: [WARNING] A component has returned a nullptr Jacobian.
30: [WARNING] A component has returned a nullptr Jacobian.
(...)
30: [WARNING] A component has returned a nullptr Jacobian.
30: 
30: 
30: Complete in 0.001583 seconds
1/1 Test #30: ThreeBusConstantSource_pdsim .....   Passed    0.04 sec

The following tests passed:
        ThreeBusConstantSource_pdsim

100% tests passed, 0 tests failed out of 1

Total Test time (real) =   0.07 sec

GridKit™ version

develop at a55ce6a

System and environment details

MacOS 15, M4, clang 18 from MacPorts.

Additional information

It is probably a good time to add some safeguards to DynamicSimulation app to exit gracefully and return a verbose error message when something does not work.

Also worthwhile considering: Create a TestDynamicSimulation app that would be an instrumented version of DynamicSimulation and used for testing, while DynamicSimulation would be used in production. Alternatively, add optional verifications to the DynamicSimulation app that could be enabled with a flag like --deep-checks or similar.

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

Fields

No fields configured for Bug.

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions