Skip to content

Commit c83f92a

Browse files
authored
[Profiler][Tests] Add shutdown guard and class filter to class loading test (#114849)
1 parent 1c7e2a0 commit c83f92a

File tree

1 file changed

+41
-10
lines changed

1 file changed

+41
-10
lines changed

src/tests/profiler/native/classload/classload.cpp

Lines changed: 41 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -28,37 +28,67 @@ HRESULT ClassLoad::Initialize(IUnknown* pICorProfilerInfoUnk)
2828

2929
HRESULT ClassLoad::ClassLoadStarted(ClassID classId)
3030
{
31-
_classLoadStartedCount++;
31+
SHUTDOWNGUARD();
32+
33+
// Increment only UnloadLibrary.TestClass classes
34+
std::wstring className = GetClassIDName(classId).ToCStr();
35+
if (className.find(L"UnloadLibrary.TestClass") != std::wstring::npos)
36+
{
37+
wprintf(L"ClassLoadStarted: %ls\n", className.c_str());
38+
_classLoadStartedCount++;
39+
}
40+
3241
return S_OK;
3342
}
3443

3544
HRESULT ClassLoad::ClassLoadFinished(ClassID classId, HRESULT hrStatus)
3645
{
37-
_classLoadFinishedCount++;
46+
SHUTDOWNGUARD();
47+
48+
// Increment only UnloadLibrary.TestClass classes
49+
std::wstring className = GetClassIDName(classId).ToCStr();
50+
if (className.find(L"UnloadLibrary.TestClass") != std::wstring::npos)
51+
{
52+
_classLoadFinishedCount++;
53+
}
54+
3855
return S_OK;
3956
}
4057

4158
HRESULT ClassLoad::ClassUnloadStarted(ClassID classId)
4259
{
43-
_classUnloadStartedCount++;
44-
wprintf(L"ClassUnloadStarted: %s\n", GetClassIDName(classId).ToCStr());
60+
SHUTDOWNGUARD();
61+
62+
// Increment only UnloadLibrary.TestClass classes
63+
std::wstring className = GetClassIDName(classId).ToCStr();
64+
if (className.find(L"UnloadLibrary.TestClass") != std::wstring::npos)
65+
{
66+
wprintf(L"ClassUnloadStarted: %ls\n", className.c_str());
67+
_classUnloadStartedCount++;
68+
}
4569

4670
return S_OK;
4771
}
4872

4973
HRESULT ClassLoad::ClassUnloadFinished(ClassID classID, HRESULT hrStatus)
5074
{
51-
_classUnloadFinishedCount++;
75+
SHUTDOWNGUARD();
76+
77+
// Increment only UnloadLibrary.TestClass classes
78+
std::wstring className = GetClassIDName(classID).ToCStr();
79+
if (className.find(L"UnloadLibrary.TestClass") != std::wstring::npos)
80+
{
81+
_classUnloadFinishedCount++;
82+
}
83+
5284
return S_OK;
5385
}
5486

55-
5687
HRESULT ClassLoad::Shutdown()
5788
{
5889
Profiler::Shutdown();
5990

6091
if(_failures == 0
61-
&& (_classLoadStartedCount != 0)
6292
// Expect unloading of UnloadLibrary.TestClass and
6393
// List<UnloadLibrary.TestClass> with all its base classes with everything used in List constructor:
6494
// - UnloadLibrary.TestClass
@@ -67,10 +97,11 @@ HRESULT ClassLoad::Shutdown()
6797
// - System.Collections.Generic.IReadOnlyCollection`1<UnloadLibrary.TestClass>
6898
// - System.Collections.Generic.IReadOnlyList`1<UnloadLibrary.TestClass>
6999
// - System.Collections.Generic.List`1<UnloadLibrary.TestClass>
70-
// - System.Collections.Generic.ICollection`1<UnloadLibrary.TestClass>
71-
&& (_classUnloadStartedCount == 7)
100+
// - System.Collections.Generic.ICollection`1<UnloadLibrary.TestClass>
72101
&& (_classLoadStartedCount == _classLoadFinishedCount)
73-
&& (_classUnloadStartedCount == _classUnloadFinishedCount))
102+
&& (_classLoadStartedCount == 7)
103+
&& (_classUnloadStartedCount == _classUnloadFinishedCount)
104+
&& (_classUnloadStartedCount == 7))
74105
{
75106
printf("PROFILER TEST PASSES\n");
76107
}

0 commit comments

Comments
 (0)