diff options
author | Jacob Bachmeyer <jcb@gnu.org> | 2022-11-30 23:22:32 -0600 |
---|---|---|
committer | Jacob Bachmeyer <jcb@gnu.org> | 2022-11-30 23:22:32 -0600 |
commit | ac0996ca907ea71f5e9a17ea1b50238f461dc60e (patch) | |
tree | 8c852d78bc4d82d97898b47037c863c06dc33f27 | |
parent | cc2dcde3edb178434be6ce74fdd12322a35fcfb5 (diff) |
Avoid spurious reinitialization in TestState
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | dejagnu.h | 7 |
2 files changed, 9 insertions, 1 deletions
@@ -1,5 +1,8 @@ 2022-11-30 Jacob Bachmeyer <jcb@gnu.org> + * dejagnu.h (TestState::TestState): Only perform initialization + when the first TestState object is constructed. + * dejagnu.h (DG__endmsg): New function, called using atexit(). (endmsg_registered, TestState_count): Add fields to DG__status. (DG__init): New function, to register DG__endmsg. @@ -218,6 +218,12 @@ class TestState { public: TestState (void) { + DG__status.TestState_count++; + + if (DG__status.TestState_count > 1) + return; /* Do not clear the counters if additional TestState + objects are constructed. */ + DG__status.pass = 0; DG__status.fail = 0; DG__status.xpass = 0; @@ -228,7 +234,6 @@ class TestState { /* C++ object destruction will substitute for atexit(). */ DG__status.endmsg_registered = 1; - DG__status.TestState_count++; } ~TestState (void) |