@@ -98,6 +98,19 @@ int main(int argc, char** argv)
9898 )
9999 .Times (1 )
100100 .Expected ();
101+ // Unassign ifstream pointers when done
102+ CO_INSTRUCT_NO_REF (OverrideInstance, ~Mock_ifstream)
103+ .WhenCalledExpectedly_Do
104+ (
105+ [&userConfigIfstreamInstance, &versionIfstreamInstance]
106+ (void * instance, std::vector<CppOverride::TypedDataInfo>&)
107+ {
108+ if (instance == userConfigIfstreamInstance)
109+ userConfigIfstreamInstance = nullptr ;
110+ else if (instance == versionIfstreamInstance)
111+ versionIfstreamInstance = nullptr ;
112+ }
113+ );
101114 CO_INSTRUCT_REF (OverrideInstance, std::Mock_ifstream, operator !)
102115 .If
103116 (
@@ -509,7 +522,32 @@ int main(int argc, char** argv)
509522 }
510523 )
511524 .Expected ();
512-
525+ // Unassign ifstream pointers when done
526+ CO_REMOVE_INSTRUCT_NO_REF (OverrideInstance, ~Mock_ifstream);
527+ CO_INSTRUCT_NO_REF (OverrideInstance, ~Mock_ifstream)
528+ .WhenCalledExpectedly_Do
529+ (
530+ [
531+ &userConfigIfstreamInstance,
532+ &versionIfstreamInstance,
533+ &gccImportIfstreamInstance,
534+ &filetypesImportIfstreamInstance,
535+ &gccCompilerLinkerImportIfstreamInstance
536+ ]
537+ (void * instance, ...)
538+ {
539+ if (instance == userConfigIfstreamInstance)
540+ userConfigIfstreamInstance = nullptr ;
541+ else if (instance == versionIfstreamInstance)
542+ versionIfstreamInstance = nullptr ;
543+ else if (instance == gccImportIfstreamInstance)
544+ gccImportIfstreamInstance = nullptr ;
545+ else if (instance == filetypesImportIfstreamInstance)
546+ filetypesImportIfstreamInstance = nullptr ;
547+ else if (instance == gccCompilerLinkerImportIfstreamInstance)
548+ gccCompilerLinkerImportIfstreamInstance = nullptr ;
549+ }
550+ );
513551 // Mock for rdbuf call with specific path check for import files
514552 CO_INSTRUCT_REF (OverrideInstance, std::Mock_ifstream, rdbuf)
515553 .Returns <std::string>(importedGccProfileYamlStr)
0 commit comments