Delete FEATURE_TESTHOOK (#24746)
authorJan Kotas <jkotas@microsoft.com>
Fri, 24 May 2019 00:38:52 +0000 (17:38 -0700)
committerGitHub <noreply@github.com>
Fri, 24 May 2019 00:38:52 +0000 (17:38 -0700)
17 files changed:
src/System.Private.CoreLib/shared/System/Diagnostics/Tracing/EventSource.cs
src/inc/clrconfigvalues.h
src/inc/testhook.h [deleted file]
src/vm/CMakeLists.txt
src/vm/appdomain.cpp
src/vm/appdomain.hpp
src/vm/callhelpers.h
src/vm/ceemain.cpp
src/vm/debugdebugger.cpp
src/vm/fcall.h
src/vm/interpreter.cpp
src/vm/jithelpers.cpp
src/vm/peimagelayout.cpp
src/vm/syncblk.cpp
src/vm/testhookmgr.cpp [deleted file]
src/vm/testhookmgr.h [deleted file]
src/vm/threadsuspend.cpp

index e16a57f..9f59da9 100644 (file)
@@ -3204,13 +3204,6 @@ namespace System.Diagnostics.Tracing
             if (eventSourceType.IsAbstract() && (flags & EventManifestOptions.Strict) == 0)
                 return null;
 
-#if DEBUG && ES_BUILD_STANDALONE && TEST_SUPPORT
-            TestSupport.TestHooks.MaybeThrow(eventSourceType,
-                                        TestSupport.Category.ManifestError,
-                                        "EventSource_CreateManifestAndDescriptors",
-                                        new ArgumentException("EventSource_CreateManifestAndDescriptors"));
-#endif
-
             try
             {
                 MethodInfo[] methods = eventSourceType.GetMethods(BindingFlags.DeclaredOnly | BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance);
index 66fcda6..ab28104 100644 (file)
@@ -247,7 +247,6 @@ CONFIG_DWORD_INFO_DIRECT_ACCESS(INTERNAL_SuppressChecks, W("SuppressChecks"), ""
 #ifdef WIN64EXCEPTIONS
 CONFIG_DWORD_INFO(INTERNAL_SuppressLockViolationsOnReentryFromOS, W("SuppressLockViolationsOnReentryFromOS"), 0, "64 bit OOM tests re-enter the CLR via RtlVirtualUnwind.  This indicates whether to suppress resulting locking violations.")
 #endif // WIN64EXCEPTIONS
-CONFIG_STRING_INFO(INTERNAL_TestHooks, W("TestHooks"), "Used by tests to get test an insight on various CLR workings")
 
 
 ///
diff --git a/src/inc/testhook.h b/src/inc/testhook.h
deleted file mode 100644 (file)
index 90977a1..0000000
+++ /dev/null
@@ -1,159 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-// See the LICENSE file in the project root for more information.
-
-
-// 
-
-#ifndef CLR_TESTHOOK_H
-#define  CLR_TESTHOOK_H
-
-// {CCB32DA2-2544-4195-8552-AC1986A83C73}
-static const GUID IID_ICLRTestHook = 
-{ 0xccb32da2, 0x2544, 0x4195, { 0x85, 0x52, 0xac, 0x19, 0x86, 0xa8, 0x3c, 0x73 } };
-static const GUID IID_ICLRTestHook2 = 
-{ 0xccb32da2, 0x2544, 0x4195, { 0x85, 0x52, 0xac, 0x19, 0x86, 0xa8, 0x3c, 0x83 } };
-static const GUID IID_ICLRTestHook3 = 
-{ 0xccb32da2, 0x2544, 0x4195, { 0x85, 0x52, 0xac, 0x19, 0x86, 0xa8, 0x3c, 0x84 } };
-static const GUID IID_ICLRTestHookManager = 
-{ 0xccb32da2, 0x2544, 0x4195, { 0x85, 0x52, 0xac, 0x19, 0x86, 0xa8, 0x3c, 0x74 } };
-
-enum
-{
-    ADUF_ASYNCHRONOUS,       //no wait
-    ADUF_NORMAL,                    //wait, might be kicked out
-    ADUF_FORCEFULLGC,           //same as normal, but does full gc
-};
-
-enum
-{
-    RTS_INITIALIZED,
-    RTS_DEFAULTADREADY,
-    RTS_CALLINGENTRYPOINT   
-};
-
-enum
-{
-    IM_FLAT=1,
-    IM_IMAGEMAP=2,        
-    IM_FIXEDUP=4,
-    IM_LOADLIBRARY=0xc  //always fixed up     
-};
-
-class ICLRTestHook : public IUnknown
-{
-public:
-    STDMETHOD(AppDomainStageChanged)(DWORD adid,DWORD oldstage,DWORD newstage)=0;
-    STDMETHOD(NextFileLoadLevel)(DWORD adid, LPVOID domainfile,DWORD newlevel)=0;
-    STDMETHOD(CompletingFileLoadLevel)(DWORD adid, LPVOID domainfile,DWORD newlevel)=0;
-    STDMETHOD(CompletedFileLoadLevel)(DWORD adid, LPVOID domainfile,DWORD newlevel)=0;
-    STDMETHOD(EnteringAppDomain)(DWORD id)=0;
-    STDMETHOD(EnteredAppDomain)(DWORD id)=0;
-    STDMETHOD(LeavingAppDomain)(DWORD id)=0;
-    STDMETHOD(LeftAppDomain)(DWORD id)=0;
-    STDMETHOD(UnwindingThreads)(DWORD id) = 0;
-    STDMETHOD(UnwoundThreads)(DWORD id) = 0;   
-    STDMETHOD(AppDomainCanBeUnloaded)(DWORD id, BOOL bUnsafePoint)=0; 
-    STDMETHOD(AppDomainDestroyed)(DWORD id)=0;
-    STDMETHOD(RuntimeStarted)(DWORD code)=0;
-};
-
-class ICLRTestHook2 : public ICLRTestHook
-{
-public:
-    STDMETHOD(ImageMapped(LPCWSTR wszPath, LPCVOID pBaseAddress,DWORD flags))=0;
-};
-
-class ICLRTestHook3 : public ICLRTestHook2
-{
-public:
-    STDMETHOD(CompletedNativeImageBind)(LPVOID pFile,LPCUTF8 simpleName, BOOL hasNativeImage)=0;
-    STDMETHOD(AboutToLockImage)(LPCWSTR wszPath, BOOL bIsCompilationProcess)=0;
-    STDMETHOD(StartingNativeImageBind)(LPCWSTR wszAsmName, BOOL bIsCompilationProcess)=0;
-};
-
-class  ICLRTestHookManager 
-{
-public:
-    STDMETHOD(AddTestHook)(ICLRTestHook* hook)=0;
-    STDMETHOD(EnableSlowPath) (BOOL bEnable) =0;
-    STDMETHOD(UnloadAppDomain)(DWORD adid,DWORD flags)=0;
-    STDMETHOD_(VOID,DoAppropriateWait)( int cObjs, HANDLE *pObjs, INT32 iTimeout, BOOL bWaitAll, int* res)=0;  
-    STDMETHOD(GC)(int generation)=0;
-    STDMETHOD(GetSimpleName)(LPVOID domainfile,LPCUTF8* name)=0;
-    STDMETHOD_(INT_PTR,GetCurrentThreadType)(VOID)=0; //see clrhost.h
-    STDMETHOD_(INT_PTR,GetCurrentThreadLockCount) (VOID) =0;
-    STDMETHOD_(BOOL,IsPreemptiveGC)(VOID) =0;          
-    STDMETHOD_(BOOL,ThreadCanBeAborted) (VOID) = 0;
-};
-
-class  ICLRTestHookManager2 : public  ICLRTestHookManager
-{
-public:
-    STDMETHOD(HasNativeImage)(LPVOID domainfile,BOOL* pHasNativeImage) = 0;    
-};
-
-//sample implementation
-class CLRTestHook : public ICLRTestHook3
-{
-private:
-    LONG m_cRef;
-public:    
-    CLRTestHook()
-    {
-        m_cRef=0;
-    }
-    virtual ~CLRTestHook() {}
-    STDMETHOD(AppDomainStageChanged)(DWORD adid,DWORD oldstage,DWORD newstage){ return S_OK;};
-    STDMETHOD(NextFileLoadLevel)(DWORD adid, LPVOID domainfile,DWORD newlevel){ return S_OK;};
-    STDMETHOD(CompletingFileLoadLevel)(DWORD adid, LPVOID domainfile,DWORD newlevel){ return S_OK;};
-    STDMETHOD(CompletedFileLoadLevel)(DWORD adid, LPVOID domainfile,DWORD newlevel){ return S_OK;};
-    STDMETHOD(EnteringAppDomain)(DWORD id){ return S_OK;};
-    STDMETHOD(EnteredAppDomain)(DWORD id){ return S_OK;};
-    STDMETHOD(LeavingAppDomain)(DWORD id){ return S_OK;};
-    STDMETHOD(LeftAppDomain)(DWORD id){ return S_OK;};
-    STDMETHOD(UnwindingThreads)(DWORD id) {return S_OK;};
-    STDMETHOD(UnwoundThreads)(DWORD id) {return S_OK;};
-    STDMETHOD(AppDomainCanBeUnloaded)(DWORD id, BOOL bUnsafePoint){ return S_OK;}; 
-    STDMETHOD(AppDomainDestroyed)(DWORD id){ return S_OK;};
-    STDMETHOD(RuntimeStarted)(DWORD code){ return S_OK;};
-    STDMETHOD(ImageMapped(LPCWSTR wszPath, LPCVOID pBaseAddress,DWORD flags)){return S_OK;};
-    STDMETHOD(CompletedNativeImageBind)(LPVOID pFile,LPCUTF8 simpleName, BOOL hasNativeImage){return S_OK;};
-    STDMETHOD(AboutToLockImage)(LPCWSTR wszPath, BOOL bIsCompilationProcess){return S_OK;};
-    STDMETHOD(StartingNativeImageBind)(LPCWSTR wszAsmName, BOOL bIsCompilationProcess){return S_OK;};
-    STDMETHOD_(ULONG,AddRef)() 
-    {
-        return InterlockedIncrement(&m_cRef);
-    };
-    STDMETHOD_(ULONG,Release)()
-    {
-        ULONG  ulRef = InterlockedDecrement(&m_cRef);
-        if (!ulRef) 
-            delete this;
-        return ulRef;
-    };   
-    STDMETHOD(QueryInterface)(REFIID riid, void** ppv)
-    {
-        if (!ppv) 
-            return E_POINTER;
-
-        if (   IsEqualIID(riid, IID_IUnknown)
-            || IsEqualIID(riid, IID_ICLRTestHook)
-            || IsEqualIID(riid, IID_ICLRTestHook2)
-                       || IsEqualIID(riid, IID_ICLRTestHook3))
-        {
-            AddRef();
-            *ppv = static_cast<ICLRTestHook3*>(this);
-            return S_OK;
-        }
-        else
-        {
-            *ppv = NULL;
-            return E_NOINTERFACE;
-        }
-    };   
-};
-
-typedef void CALLBACK CLRTESTHOOKPROC(ICLRTestHookManager*);
-
-#endif
index 7acfa94..61ee680 100644 (file)
@@ -385,7 +385,6 @@ set(VM_SOURCES_WKS
     syncclean.cpp
     synch.cpp
     synchronizationcontextnative.cpp
-    testhookmgr.cpp
     threaddebugblockinginfo.cpp
     threadsuspend.cpp
     typeparse.cpp
@@ -504,7 +503,6 @@ set(VM_HEADERS_WKS
     syncclean.hpp
     synch.h
     synchronizationcontextnative.h
-    testhookmgr.h
     tieredcompilation.h
     threaddebugblockinginfo.h
     threadsuspend.h
index 4e98706..aab397e 100644 (file)
@@ -4104,7 +4104,6 @@ DomainFile *AppDomain::LoadDomainFile(FileLoadLock *pLock, FileLoadLevel targetL
 
                     TryIncrementalLoad(pFile, workLevel, fileLock);
                 }
-                TESTHOOKCALL(CompletedFileLoadLevel(DefaultADID,pFile,workLevel));
             }
 
             if (pLock->GetLoadLevel() == immediateTargetLevel-1)
@@ -4169,9 +4168,7 @@ void AppDomain::TryIncrementalLoad(DomainFile *pFile, FileLoadLevel workLevel, F
         }
 
         // Do the work
-        TESTHOOKCALL(NextFileLoadLevel(DefaultADID,pFile,workLevel));
         BOOL success = pFile->DoIncrementalLoad(workLevel);
-        TESTHOOKCALL(CompletingFileLoadLevel(DefaultADID,pFile,workLevel));
         if (released)
         {
             // Reobtain lock to increment level. (Note that another thread may
@@ -5416,7 +5413,6 @@ ULONG AppDomain::Release()
     {
         _ASSERTE (m_Stage == STAGE_CREATING);
         delete this;
-        TESTHOOKCALL(AppDomainDestroyed(DefaultADID));
     }
     return (cRef);
 }
index 3d4a732..2d14256 100644 (file)
@@ -25,7 +25,6 @@
 #include "domainfile.h"
 #include "objectlist.h"
 #include "fptrstubs.h"
-#include "testhookmgr.h"
 #include "gcheaputilities.h"
 #include "gchandleutilities.h"
 #include "../binder/inc/applicationcontext.hpp"
@@ -2570,7 +2569,6 @@ private:
         }
         CONTRACTL_END;
         STRESS_LOG1(LF_APPDOMAIN, LL_INFO100,"Updating AD stage, stage=%d\n",stage);
-        TESTHOOKCALL(AppDomainStageChanged(DefaultADID,m_Stage,stage));
         Stage lastStage=m_Stage;
         while (lastStage !=stage) 
             lastStage = (Stage)FastInterlockCompareExchange((LONG*)&m_Stage,stage,lastStage);
index f0d718c..c30dc0b 100644 (file)
@@ -542,7 +542,6 @@ enum EEToManagedCallFlags
     /* thread abort has been requested */                                       \
     if (!(flags & EEToManagedCriticalCall))                                     \
     {                                                                           \
-        TESTHOOKCALL(AppDomainCanBeUnloaded(DefaultADID,FALSE));                \
         if (CURRENT_THREAD->IsAbortRequested()) {                               \
             CURRENT_THREAD->HandleThreadAbort();                                \
         }                                                                       \
index e03c78b..3b02b31 100644 (file)
@@ -355,10 +355,6 @@ HRESULT EnsureEEStarted(COINITIEE flags)
             }
         }
 
-#ifdef FEATURE_TESTHOOKS        
-        if(bStarted)
-            TESTHOOKCALL(RuntimeStarted(RTS_INITIALIZED));
-#endif        
         END_ENTRYPOINT_NOTHROW;
     }
     else
@@ -682,10 +678,6 @@ void EEStartupHelper(COINITIEE fFlags)
 
         Frame::Init();
 
-#ifdef FEATURE_TESTHOOKS
-        IfFailGo(CLRTestHookManager::CheckConfig());
-#endif
-
 #endif // CROSSGEN_COMPILE
 
 
index 93457b4..58c186a 100644 (file)
@@ -826,7 +826,6 @@ FCIMPL1(void, DebugDebugger::CustomNotification, Object * dataUNSAFE)
         g_pDebugInterface->SendCustomDebuggerNotification(pThread, pDomainFile, classToken);   
         pThread->ClearThreadCurrNotification();
 
-        TESTHOOKCALL(AppDomainCanBeUnloaded(DefaultADID, FALSE));
         if (pThread->IsAbortRequested())
         {
             pThread->HandleThreadAbort();
index 55d5826..7569c85 100644 (file)
@@ -573,7 +573,6 @@ LPVOID __FCThrowArgument(LPVOID me, enum RuntimeExceptionKind reKind, LPCWSTR ar
 
 #define HELPER_METHOD_FRAME_BEGIN_EX(ret, helperFrame, gcpoll, allowGC)         \
         HELPER_METHOD_FRAME_BEGIN_EX_BODY(ret, helperFrame, gcpoll, allowGC)    \
-            TESTHOOKCALL(AppDomainCanBeUnloaded(DefaultADID,!allowGC)); \
             /* <TODO>TODO TURN THIS ON!!!   </TODO> */                    \
             /* gcpoll; */                                                       \
             INSTALL_MANAGED_EXCEPTION_DISPATCHER;                               \
@@ -609,7 +608,6 @@ LPVOID __FCThrowArgument(LPVOID me, enum RuntimeExceptionKind reKind, LPCWSTR ar
 #define HELPER_METHOD_FRAME_END_EX(gcpoll,allowGC)                          \
             UNINSTALL_UNWIND_AND_CONTINUE_HANDLER;                          \
             UNINSTALL_MANAGED_EXCEPTION_DISPATCHER;                         \
-            TESTHOOKCALL(AppDomainCanBeUnloaded(DefaultADID,!allowGC)); \
         HELPER_METHOD_FRAME_END_EX_BODY(gcpoll,allowGC);
 
 #define HELPER_METHOD_FRAME_END_EX_NOTHROW(gcpoll,allowGC)                  \
index dbde2d1..df68465 100644 (file)
@@ -1774,8 +1774,6 @@ static void MonitorExit(Object* obj, BYTE* pbLockTaken)
         COMPlusThrow(kSynchronizationLockException);
 
     if (pbLockTaken != 0) *pbLockTaken = 0;
-
-    TESTHOOKCALL(AppDomainCanBeUnloaded(DefaultADID, FALSE));
     
     if (GET_THREAD()->IsAbortRequested()) {
         GET_THREAD()->HandleThreadAbort();
@@ -1794,7 +1792,6 @@ static void MonitorExitStatic(AwareLock *lock, BYTE* pbLockTaken)
     if (!lock->Leave())
         COMPlusThrow(kSynchronizationLockException);
 
-    TESTHOOKCALL(AppDomainCanBeUnloaded(DefaultADID, FALSE));
     if (GET_THREAD()->IsAbortRequested()) {
         GET_THREAD()->HandleThreadAbort();
     }
index 261b9ac..47e82f4 100644 (file)
@@ -4455,8 +4455,6 @@ NOINLINE static void JIT_MonExit_Helper(Object* obj, BYTE* pbLockTaken)
         COMPlusThrow(kSynchronizationLockException);
 
     if (pbLockTaken != 0) *pbLockTaken = 0;
-
-    TESTHOOKCALL(AppDomainCanBeUnloaded(DefaultADID,FALSE));
     
     if (GET_THREAD()->IsAbortRequested()) {
         GET_THREAD()->HandleThreadAbort();
@@ -4480,8 +4478,6 @@ NOINLINE static void JIT_MonExit_Signal(Object* obj)
     SyncBlock *psb = objRef->PassiveGetSyncBlock();
     if (psb != NULL)
         psb->QuickGetMonitor()->Signal();
-
-    TESTHOOKCALL(AppDomainCanBeUnloaded(DefaultADID,FALSE));
     
     if (GET_THREAD()->IsAbortRequested()) {
         GET_THREAD()->HandleThreadAbort();
@@ -4619,7 +4615,6 @@ NOINLINE static void JIT_MonExitStatic_Helper(AwareLock *lock, BYTE* pbLockTaken
         COMPlusThrow(kSynchronizationLockException);
     MONHELPER_STATE(*pbLockTaken = 0;)
 
-    TESTHOOKCALL(AppDomainCanBeUnloaded(DefaultADID,FALSE));
     if (GET_THREAD()->IsAbortRequested()) {
         GET_THREAD()->HandleThreadAbort();
     }
@@ -4637,7 +4632,6 @@ NOINLINE static void JIT_MonExitStatic_Signal(AwareLock *lock)
 
     lock->Signal();
 
-    TESTHOOKCALL(AppDomainCanBeUnloaded(DefaultADID,FALSE));
     if (GET_THREAD()->IsAbortRequested()) {
         GET_THREAD()->HandleThreadAbort();
     }
index c965c61..b689236 100644 (file)
@@ -335,7 +335,6 @@ RawImageLayout::RawImageLayout(const void *flat, COUNT_T size, PEImage* pOwner)
         memcpy(m_DataCopy,flat,size);
         flat=m_DataCopy;
     }
-    TESTHOOKCALL(ImageMapped(GetPath(),flat,IM_FLAT));
     Init((void*)flat,size);
 }
 RawImageLayout::RawImageLayout(const void *mapped, PEImage* pOwner, BOOL bTakeOwnership, BOOL bFixedUp)
@@ -364,7 +363,6 @@ RawImageLayout::RawImageLayout(const void *mapped, PEImage* pOwner, BOOL bTakeOw
 #endif // !FEATURE_PAL
     }
 
-    TESTHOOKCALL(ImageMapped(GetPath(),mapped,bFixedUp?IM_IMAGEMAP|IM_FIXEDUP:IM_IMAGEMAP));
     IfFailThrow(Init((void*)mapped,(bool)(bFixedUp!=FALSE)));
 }
 
@@ -401,7 +399,6 @@ ConvertedImageLayout::ConvertedImageLayout(PEImageLayout* source)
         ThrowLastError();
 
     source->LayoutILOnly(m_FileView, TRUE); //@TODO should be false for streams
-    TESTHOOKCALL(ImageMapped(GetPath(),m_FileView,IM_IMAGEMAP));
     IfFailThrow(Init(m_FileView));
 
 #ifdef CROSSGEN_COMPILE
@@ -468,7 +465,6 @@ MappedImageLayout::MappedImageLayout(HANDLE hFile, PEImage* pOwner)
     m_FileView.Assign(CLRMapViewOfFile(m_FileMap, 0, 0, 0, 0));
     if (m_FileView == NULL)
         ThrowLastError();
-    TESTHOOKCALL(ImageMapped(GetPath(),m_FileView,IM_IMAGEMAP));
     IfFailThrow(Init((void *) m_FileView));
 
 #ifdef CROSSGEN_COMPILE
@@ -536,7 +532,6 @@ MappedImageLayout::MappedImageLayout(HANDLE hFile, PEImage* pOwner)
     LOG((LF_LOADER, LL_INFO1000, "PEImage: image %S (hFile %p) mapped @ %p\n",
         (LPCWSTR) GetPath(), hFile, (void*)m_LoadedFile));
 
-    TESTHOOKCALL(ImageMapped(GetPath(),m_LoadedFile,IM_IMAGEMAP));
     IfFailThrow(Init((void *) m_LoadedFile));
 
     if (!HasCorHeader())
@@ -587,7 +582,6 @@ LoadedImageLayout::LoadedImageLayout(PEImage* pOwner, BOOL bNTSafeLoad, BOOL bTh
         HRESULT hr = HRESULT_FROM_GetLastError();
         EEFileLoadException::Throw(pOwner->GetPath(), hr, NULL);
     }
-    TESTHOOKCALL(ImageMapped(GetPath(),m_Module,IM_LOADLIBRARY));
     IfFailThrow(Init(m_Module,true));
 
     LOG((LF_LOADER, LL_INFO1000, "PEImage: Opened HMODULE %S\n", (LPCWSTR) GetPath()));
@@ -624,7 +618,6 @@ FlatImageLayout::FlatImageLayout(HANDLE hFile, PEImage* pOwner)
         if (m_FileView == NULL)
             ThrowLastError();
     }
-    TESTHOOKCALL(ImageMapped(GetPath(),m_FileView,IM_FLAT));
     Init(m_FileView, size);
 }
 
index c344b1b..5baab75 100644 (file)
@@ -2458,7 +2458,6 @@ BOOL AwareLock::TryEnter(INT32 timeOut)
     CONTRACTL_END;
 
     Thread  *pCurThread = GetThread();
-    TESTHOOKCALL(AppDomainCanBeUnloaded(DefaultADID, FALSE));
 
     if (pCurThread->IsAbortRequested())
     {
diff --git a/src/vm/testhookmgr.cpp b/src/vm/testhookmgr.cpp
deleted file mode 100644 (file)
index f72f69d..0000000
+++ /dev/null
@@ -1,762 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-// See the LICENSE file in the project root for more information.
-
-
-// 
-
-#include "common.h"
-#include "testhookmgr.h"
-#include "appdomain.hpp"
-#include "appdomain.inl"
-#include "finalizerthread.h"
-
-#ifdef FEATURE_TESTHOOKS
-CLRTestHookManager* CLRTestHookManager::g_pManager=NULL;
-CLRTestHookManager::~CLRTestHookManager()
-{
-
-}
-
-HRESULT CLRTestHookManager::AddTestHook(ICLRTestHook* hook)
-{
-    WRAPPER_NO_CONTRACT;
-    DWORD newidx=FastInterlockIncrement(&m_nHooks);
-    if (newidx>=NumItems(m_pHooks))
-    {
-        FastInterlockDecrement(&m_nHooks);
-        return DISP_E_OVERFLOW;
-    }
-    m_pHooks[newidx-1].Set(hook);
-    return S_OK;
-}
-
-
-ICLRTestHookManager* CLRTestHookManager::Start()
-{
-    LIMITED_METHOD_CONTRACT;
-    if (g_pManager==NULL)
-    {
-        CLRTestHookManager* newman=new (nothrow)CLRTestHookManager();
-        if (newman!=NULL && FastInterlockCompareExchangePointer(&g_pManager, newman, 0)!=0)
-            delete newman;
-    }
-    if(g_pManager)
-        g_pManager->AddRef();
-    return g_pManager;
-}
-
-CLRTestHookManager::CLRTestHookManager()
-{
-    WRAPPER_NO_CONTRACT;
-    m_nHooks=0;
-    m_cRef=1;
-    ZeroMemory(m_pHooks,sizeof(m_pHooks));
-}
-
-HRESULT CLRTestHookManager::AppDomainStageChanged(DWORD adid,DWORD oldstage,DWORD newstage)
-{
-    STATIC_CONTRACT_NOTHROW;
-
-    struct Param
-    {
-        CLRTestHookManager *pThis;
-        DWORD adid;
-        DWORD oldstage;
-        DWORD newstage;
-    } param;
-    param.pThis = this;
-    param.adid = adid;
-    param.oldstage = oldstage;
-    param.newstage = newstage;
-
-    PAL_TRY(Param *, pParam, &param)
-    {
-        //ignores the returned codes
-        for (LONG i = 0; i < pParam->pThis->m_nHooks; i++)
-        {
-            ICLRTestHook* hook = pParam->pThis->m_pHooks[i].v1();
-            if(hook)
-            {
-                HRESULT hr=hook->AppDomainStageChanged(pParam->adid, pParam->oldstage, pParam->newstage);
-                _ASSERTE(SUCCEEDED(hr));
-            }
-        }
-    }
-    PAL_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
-    {
-        _ASSERTE(!"Test Hook threw an exception.");
-    }
-    PAL_ENDTRY;
-    return S_OK;
-};
-
-
-HRESULT CLRTestHookManager::NextFileLoadLevel(DWORD adid, LPVOID domainfile,DWORD newlevel)
-{
-    STATIC_CONTRACT_THROWS;
-    HRESULT hr=S_OK;
-    {
-        for (LONG i=0;i<m_nHooks;i++)
-        {
-            ICLRTestHook* hook=m_pHooks[i].v1();
-            if(hook)
-            {
-                HRESULT hr2=hook->NextFileLoadLevel( adid,  domainfile, newlevel);
-                _ASSERTE(SUCCEEDED(hr)||SUCCEEDED(hr2));
-                if (SUCCEEDED(hr))
-                    hr=hr2;
-            }
-        }
-    }
-    IfFailThrow(hr);
-    return hr;
-}
-
-HRESULT CLRTestHookManager::CompletingFileLoadLevel(DWORD adid, LPVOID domainfile,DWORD newlevel)
-{
-    STATIC_CONTRACT_THROWS;
-    HRESULT hr=S_OK;
-    {
-        for (LONG i=0;i<m_nHooks;i++)
-        {
-            ICLRTestHook* hook=m_pHooks[i].v1();
-            if(hook)
-            {
-                HRESULT hr2=hook->CompletingFileLoadLevel( adid,  domainfile, newlevel);
-                _ASSERTE(SUCCEEDED(hr)||SUCCEEDED(hr2));
-                if (SUCCEEDED(hr))
-                    hr=hr2;
-            }
-        }
-    }
-
-        
-    IfFailThrow(hr);
-    return hr;
-}
-
-HRESULT CLRTestHookManager::CompletedFileLoadLevel(DWORD adid, LPVOID domainfile,DWORD newlevel)
-{
-    STATIC_CONTRACT_NOTHROW;
-
-    struct Param
-    {
-        CLRTestHookManager *pThis;
-        DWORD adid;
-        LPVOID domainfile;
-        DWORD newlevel;
-    } param;
-    param.pThis = this;
-    param.adid = adid;
-    param.domainfile = domainfile;
-    param.newlevel = newlevel;
-
-    PAL_TRY(Param *, pParam, &param)
-    {
-        //ignores the returned codes
-        for (LONG i = 0; i < pParam->pThis->m_nHooks; i++)
-        {
-            ICLRTestHook* hook = pParam->pThis->m_pHooks[i].v1();
-            if(hook)
-            {
-                HRESULT hr=hook->CompletedFileLoadLevel(pParam->adid, pParam->domainfile, pParam->newlevel);
-                _ASSERTE(SUCCEEDED(hr));
-            }
-        }
-    }
-    PAL_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
-    {
-        _ASSERTE(!"Test Hook threw an exception.");
-    }
-    PAL_ENDTRY
-        
-    return S_OK;
-}
-
-HRESULT CLRTestHookManager::EnteringAppDomain(DWORD adid)
-{
-    STATIC_CONTRACT_THROWS;
-    HRESULT hr=S_OK;
-    {
-        for (LONG i=0;i<m_nHooks;i++)
-        {
-            ICLRTestHook* hook=m_pHooks[i].v1();
-            if(hook)
-            {
-                HRESULT hr2=hook->EnteringAppDomain(adid);
-                _ASSERTE(SUCCEEDED(hr)||SUCCEEDED(hr2));
-                if (SUCCEEDED(hr))
-                    hr=hr2;
-            }
-        }
-    }
-    IfFailThrow(hr);    
-    return hr;
-}
-
-HRESULT CLRTestHookManager::EnteredAppDomain(DWORD adid)
-{
-    STATIC_CONTRACT_THROWS;
-    HRESULT hr=S_OK;
-    {
-        for (LONG i=0;i<m_nHooks;i++)
-        {
-            ICLRTestHook* hook=m_pHooks[i].v1();
-            if(hook)
-            {
-                HRESULT hr2=hook->EnteredAppDomain(adid);
-                _ASSERTE(SUCCEEDED(hr)||SUCCEEDED(hr2));
-                if (SUCCEEDED(hr))
-                    hr=hr2;
-            }
-        }
-    }        
-    IfFailThrow(hr);    
-    return hr;
-}
-
-HRESULT CLRTestHookManager::LeavingAppDomain(DWORD adid)
-{
-    STATIC_CONTRACT_THROWS;
-    HRESULT hr=S_OK;
-    {
-        for (LONG i=0;i<m_nHooks;i++)
-        {
-            ICLRTestHook* hook=m_pHooks[i].v1();
-            if(hook)
-            {
-                HRESULT hr2=hook->LeavingAppDomain(adid);
-                _ASSERTE(SUCCEEDED(hr)||SUCCEEDED(hr2));
-                if (SUCCEEDED(hr))
-                    hr=hr2;
-            }
-        }
-    }
-    IfFailThrow(hr);    
-    return hr;
-}
-
-HRESULT CLRTestHookManager::LeftAppDomain(DWORD adid)
-{
-    STATIC_CONTRACT_THROWS;
-    HRESULT hr=S_OK;
-    {
-        for (LONG i=0;i<m_nHooks;i++)
-        {
-            ICLRTestHook* hook=m_pHooks[i].v1();
-            if(hook)
-            {
-                HRESULT hr2=hook->LeftAppDomain(adid);
-                _ASSERTE(SUCCEEDED(hr)||SUCCEEDED(hr2));
-                if (SUCCEEDED(hr))
-                    hr=hr2;
-            }
-        }
-    }
-    IfFailThrow(hr);   
-    return hr;
-}
-
-HRESULT CLRTestHookManager::UnwindingThreads(DWORD adid)
-{
-    STATIC_CONTRACT_NOTHROW;
-
-    struct Param
-    {
-        CLRTestHookManager *pThis;
-        DWORD adid;
-    } param;
-    param.pThis = this;
-    param.adid = adid;
-
-    PAL_TRY(Param *, pParam, &param)
-    {
-        //ignores the returned codes
-        for (LONG i = 0; i < pParam->pThis->m_nHooks; i++)
-        {
-            ICLRTestHook* hook = pParam->pThis->m_pHooks[i].v1();
-            if(hook)
-            {
-                HRESULT hr=hook->UnwindingThreads(pParam->adid);
-                _ASSERTE(SUCCEEDED(hr));
-            }
-        }
-    }
-    PAL_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
-    {
-        _ASSERTE(!"Test Hook threw an exception.");
-    }
-    PAL_ENDTRY
-        
-    return S_OK;
-}
-
-HRESULT CLRTestHookManager::RuntimeStarted(DWORD code)
-{
-    STATIC_CONTRACT_NOTHROW;
-
-    struct Param
-    {
-        CLRTestHookManager *pThis;
-        DWORD code;
-    } param;
-    param.pThis = this;
-    param.code = code;
-
-    PAL_TRY(Param *, pParam, &param)
-    {
-        //ignores the returned codes
-        for (LONG i = 0; i < pParam->pThis->m_nHooks; i++)
-        {
-            ICLRTestHook* hook = pParam->pThis->m_pHooks[i].v1();
-            if(hook)
-            {
-                HRESULT hr=hook->RuntimeStarted(pParam->code);
-                _ASSERTE(SUCCEEDED(hr));
-            }
-        }
-    }
-    PAL_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
-    {
-        _ASSERTE(!"Test Hook threw an exception.");
-    }
-    PAL_ENDTRY
-        
-    return S_OK;
-}
-
-HRESULT CLRTestHookManager::UnwoundThreads(DWORD adid)
-{
-    STATIC_CONTRACT_NOTHROW;
-
-    struct Param
-    {
-        CLRTestHookManager *pThis;
-        DWORD adid;
-    } param;
-    param.pThis = this;
-    param.adid = adid;
-
-    PAL_TRY(Param *, pParam, &param)
-    {
-        //ignores the returned codes
-        for (LONG i = 0; i < pParam->pThis->m_nHooks; i++)
-        {
-            ICLRTestHook* hook = pParam->pThis->m_pHooks[i].v1();
-            if(hook)
-            {
-                HRESULT hr=hook->UnwoundThreads(pParam->adid);
-                _ASSERTE(SUCCEEDED(hr));
-            }
-        }
-    }
-    PAL_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
-    {
-        _ASSERTE(!"Test Hook threw an exception.");
-    }
-    PAL_ENDTRY
-        
-    return S_OK;
-}
-
-HRESULT CLRTestHookManager::AppDomainDestroyed(DWORD adid)
-{
-    STATIC_CONTRACT_NOTHROW;
-
-    struct Param
-    {
-        CLRTestHookManager *pThis;
-        DWORD adid;
-    } param;
-    param.pThis = this;
-    param.adid = adid;
-
-    PAL_TRY(Param *, pParam, &param)
-    {
-        //ignores the returned codes
-        for (LONG i = 0; i < pParam->pThis->m_nHooks; i++)
-        {
-            ICLRTestHook* hook = pParam->pThis->m_pHooks[i].v1();
-            if(hook)
-            {
-                HRESULT hr=hook->AppDomainDestroyed(pParam->adid);
-                _ASSERTE(SUCCEEDED(hr));
-            }
-        }
-    }
-    PAL_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
-    {
-        _ASSERTE(!"Test Hook threw an exception.");
-    }
-    PAL_ENDTRY
-        
-    return S_OK;
-}
-
-STDMETHODIMP CLRTestHookManager::ImageMapped(LPCWSTR wszPath, LPCVOID pBaseAddress,DWORD flags)
-{
-    STATIC_CONTRACT_NOTHROW;
-
-    struct Param
-    {
-        CLRTestHookManager *pThis;
-        LPCWSTR wszPath;
-        LPCVOID pBaseAddress;
-        DWORD flags;
-    } param;
-    param.pThis = this;
-    param.wszPath = wszPath;
-    param.pBaseAddress = pBaseAddress;
-    param.flags = flags;
-
-    PAL_TRY(Param *, pParam, &param)
-    {
-        //ignores the returned codes
-        for (LONG i = 0; i < pParam->pThis->m_nHooks; i++)
-        {
-            ICLRTestHook2* hook = pParam->pThis->m_pHooks[i].v2();
-            if(hook)
-            {
-                HRESULT hr=hook->ImageMapped(pParam->wszPath,pParam->pBaseAddress,pParam->flags);
-                _ASSERTE(SUCCEEDED(hr));
-            }
-        }
-    }
-    PAL_EXCEPT(EXCEPTION_EXECUTE_HANDLER)
-    {
-        _ASSERTE(!"Test Hook threw an exception.");
-    }
-    PAL_ENDTRY
-        
-    return S_OK;
-
-}
-
-HRESULT CLRTestHookManager::AppDomainCanBeUnloaded(DWORD adid, BOOL bUnsafePoint)
-{
-    STATIC_CONTRACT_THROWS;
-    HRESULT hr=S_OK;
-    {
-        if (!ThreadCanBeAborted())
-            return S_OK;
-        for (LONG i=0;i<m_nHooks;i++)
-        {
-            ICLRTestHook* hook=m_pHooks[i].v1();
-            if(hook)
-            {
-                HRESULT hr2=hook->AppDomainCanBeUnloaded(adid,bUnsafePoint);
-                _ASSERTE(SUCCEEDED(hr)||SUCCEEDED(hr2));
-                if (SUCCEEDED(hr))
-                    hr=hr2;
-            }
-        }
-    }
-    IfFailThrow(hr);
-    return hr;
-}
-
-HRESULT CLRTestHookManager::StartingNativeImageBind(LPCWSTR wszAsmName, BOOL bIsCompilationProcess)
-{
-    STATIC_CONTRACT_THROWS;
-    HRESULT hr=S_OK;
-    {
-        for (LONG i=0;i<m_nHooks;i++)
-        {
-            ICLRTestHook3* hook=m_pHooks[i].v3();
-            if(hook)
-            {
-                HRESULT hr2=hook->StartingNativeImageBind(wszAsmName, bIsCompilationProcess);
-                _ASSERTE(SUCCEEDED(hr)||SUCCEEDED(hr2));
-                if (SUCCEEDED(hr))
-                    hr=hr2;
-            }
-        }
-    }
-
-    IfFailThrow(hr);
-    return hr;
-}
-
-HRESULT CLRTestHookManager::CompletedNativeImageBind(LPVOID pFile,LPCUTF8 simpleName, BOOL hasNativeImage)
-{
-    STATIC_CONTRACT_THROWS;
-    HRESULT hr=S_OK;
-    {
-        for (LONG i=0;i<m_nHooks;i++)
-        {
-            ICLRTestHook3* hook=m_pHooks[i].v3();
-            if(hook)
-            {
-                HRESULT hr2=hook->CompletedNativeImageBind(pFile, simpleName, hasNativeImage);
-                _ASSERTE(SUCCEEDED(hr)||SUCCEEDED(hr2));
-                if (SUCCEEDED(hr))
-                    hr=hr2;
-            }
-        }
-    }
-
-    IfFailThrow(hr);
-    return hr;
-}
-
-HRESULT CLRTestHookManager::AboutToLockImage(LPCWSTR wszPath, BOOL bIsCompilationProcess)
-{
-    STATIC_CONTRACT_THROWS;
-    HRESULT hr=S_OK;
-    {
-        for (LONG i=0;i<m_nHooks;i++)
-        {
-            ICLRTestHook3* hook=m_pHooks[i].v3();
-            if(hook)
-            {
-                HRESULT hr2=hook->AboutToLockImage(wszPath, bIsCompilationProcess);
-                _ASSERTE(SUCCEEDED(hr)||SUCCEEDED(hr2));
-                if (SUCCEEDED(hr))
-                    hr=hr2;
-            }
-        }
-    }
-
-    IfFailThrow(hr);
-    return hr;
-}
-
-HRESULT CLRTestHookManager::EnableSlowPath (BOOL bEnable)
-{
-    WRAPPER_NO_CONTRACT;
-    ThreadStore::TrapReturningThreads(bEnable);
-    return S_OK;
-}
-
-ULONG CLRTestHookManager::AddRef()
-{
-    return FastInterlockIncrement(&m_cRef);
-}
-
-ULONG CLRTestHookManager::Release()
-{
-    ULONG nRet= FastInterlockDecrement(&m_cRef);
-    // never goes away
-    return nRet;
-}
-
-HRESULT CLRTestHookManager::QueryInterface(REFIID riid, void **ppv)
-{
-    if (riid!=IID_IUnknown && riid!=IID_ICLRTestHookManager)
-        return E_NOINTERFACE;
-    AddRef();
-    *ppv=(ICLRTestHookManager*)this;
-    return S_OK;
-}
-
-
-HRESULT CLRTestHookManager::CheckConfig()
-{
-    CONTRACTL
-    {
-        THROWS;
-        GC_NOTRIGGER;
-        MODE_ANY;
-    }
-    CONTRACTL_END;
-
-    HRESULT hr=S_OK;
-    if (g_pConfig)
-    {
-        LPWSTR szTestHooks=NULL;
-        hr=CLRConfig::GetConfigValue(CLRConfig::INTERNAL_TestHooks,&szTestHooks);
-        if (SUCCEEDED(hr) && szTestHooks!=NULL && *szTestHooks!=W('\0'))
-        {
-            LPWSTR curr=szTestHooks;
-            do
-            {
-                LPWSTR next=wcschr(curr,W(';'));
-                if (next)
-                    *(next++)=0;
-                LPWSTR delim=wcschr(curr,W(','));
-                if (delim)
-                {
-                    *(delim++)=W('\0');
-                    HMODULE hMod=WszLoadLibrary(curr);
-                    _ASSERTE(hMod);
-                    if (hMod!=NULL)
-                    {
-                        MAKE_MULTIBYTE_FROMWIDE(szFName,delim,CP_ACP);
-                        CLRTESTHOOKPROC* fn=(CLRTESTHOOKPROC*)GetProcAddress(hMod,szFName);
-                        _ASSERTE(fn);
-                        if(fn)
-                            fn(Start());
-                    }
-                }
-                curr=next;
-            }
-            while(curr!=NULL && *curr!=W('\0'));
-            
-            delete szTestHooks;
-        }
-    }
-    return hr;
-}
-
-
-HRESULT CLRTestHookManager::UnloadAppDomain(DWORD adid,DWORD flags)
-{
-    return COR_E_CANNOTUNLOADAPPDOMAIN;
-}
-
-VOID CLRTestHookManager::DoAppropriateWait( int cObjs, HANDLE *pObjs, INT32 iTimeout, BOOL bWaitAll, int* res)
-{
-    CONTRACTL
-    {
-        THROWS;
-        GC_TRIGGERS;
-        MODE_ANY;
-    }
-    CONTRACTL_END;
-
-
-    Thread* thread=GetThread();
-    DWORD result = WAIT_FAILED;
-    if(thread)
-        result=thread->DoAppropriateWait(cObjs,pObjs,bWaitAll,iTimeout,WaitMode_Alertable,NULL);
-    else
-    {
-        result = WaitForMultipleObjectsEx(cObjs,pObjs,bWaitAll,iTimeout,TRUE);
-    }
-}
-
-
-HRESULT CLRTestHookManager::GC(int generation)
-{
-    CONTRACTL
-    {
-        THROWS;
-        GC_TRIGGERS;
-        MODE_ANY;
-    }
-    CONTRACTL_END;
-
-    _ASSERTE(GetThread()==NULL || !GetThread()->PreemptiveGCDisabled());
-    GCHeapUtilities::GetGCHeap()->GarbageCollect(generation);
-    FinalizerThread::FinalizerThreadWait();
-    return S_OK;
-}
-
-
-HRESULT CLRTestHookManager::GetSimpleName(LPVOID domainfile,LPCUTF8* name)
-{
-    HRESULT hr=S_OK;
-    EX_TRY
-    {
-        *name=((DomainFile*)domainfile)->GetSimpleName();
-    }
-    EX_CATCH_HRESULT(hr);
-    return hr;
-}
-
-
-
-INT_PTR CLRTestHookManager::GetCurrentThreadType()
-{
-    WRAPPER_NO_CONTRACT;
-    return (INT_PTR) ClrFlsGetValue (TlsIdx_ThreadType);
-}
-
-INT_PTR CLRTestHookManager::GetCurrentThreadLockCount (VOID)
-{
-    LIMITED_METHOD_CONTRACT;
-    Thread* thread=GetThread();
-    if(!thread)
-        return 0;
-    return thread->m_dwLockCount;
-
-};
-
-
-BOOL CLRTestHookManager::IsPreemptiveGC (VOID)
-{
-    LIMITED_METHOD_CONTRACT;
-    Thread *thread = GetThread();
-    // Preemptive GC is default
-    if (thread == NULL)
-        return TRUE;
-    else
-        return !thread->PreemptiveGCDisabled();
-};
-
-
-BOOL CLRTestHookManager::ThreadCanBeAborted (VOID) 
-{
-    LIMITED_METHOD_CONTRACT;
-    return (GetThread()==NULL || GetThread()->IsAbortPrevented() || GetThread()->IsAsyncPrevented())?FALSE:TRUE;
-}
-
-HRESULT CLRTestHookManager::HasNativeImage(LPVOID domainfile,BOOL* pHasNativeImage)
-{
-    STATIC_CONTRACT_THROWS;
-    HRESULT hr=S_OK;
-    EX_TRY
-    {
-        if (domainfile && ((DomainFile*)domainfile)->GetFile())
-        {
-            *pHasNativeImage=((DomainFile*)domainfile)->GetFile()->HasNativeImage();
-        }
-        else
-            *pHasNativeImage = 0;     
-    }
-    EX_CATCH_HRESULT(hr);
-    return hr;
-}
-
-
-void  CLRTestHookInfo::Set(ICLRTestHook* hook)
-{
-    LIMITED_METHOD_CONTRACT;
-    if (SUCCEEDED(hook->QueryInterface(IID_ICLRTestHook3,(void**)&m_Hook.v3)))
-    {
-        m_Version=3;
-        return;
-    }
-    else if (SUCCEEDED(hook->QueryInterface(IID_ICLRTestHook2,(void**)&m_Hook.v2)))
-    {
-        m_Version=2;
-        return;
-    }
-    else
-    {
-        m_Version=1;
-    }
-    hook->AddRef();
-    m_Hook.v1=hook;
-}
-
-ICLRTestHook*  CLRTestHookInfo::v1()
-{
-    return m_Hook.v1;
-}
-
-ICLRTestHook2*  CLRTestHookInfo::v2()
-{
-    LIMITED_METHOD_CONTRACT;
-    if(m_Version==2)
-        return m_Hook.v2;
-    return NULL;
-}
-
-ICLRTestHook3*  CLRTestHookInfo::v3()
-{
-    if(m_Version>=3)
-        return m_Hook.v3;
-    return NULL;
-}
-
-
-
-//to make sure CLRTestHook is ok
-static CLRTestHook _hook; 
-
-#endif
-
-
diff --git a/src/vm/testhookmgr.h b/src/vm/testhookmgr.h
deleted file mode 100644 (file)
index fc21501..0000000
+++ /dev/null
@@ -1,101 +0,0 @@
-// Licensed to the .NET Foundation under one or more agreements.
-// The .NET Foundation licenses this file to you under the MIT license.
-// See the LICENSE file in the project root for more information.
-
-
-// 
-
-#ifndef CLR_TESTHOOKMGR_H
-#define  CLR_TESTHOOKMGR_H
-
-#include "testhook.h"
-
-#if defined(_DEBUG) && !defined(CROSSGEN_COMPILE)
-#define FEATURE_TESTHOOKS
-#endif
-
-#ifdef FEATURE_TESTHOOKS
-#define TESTHOOKCALL(function) \
-    do { if(CLRTestHookManager::Enabled())       \
-             CLRTestHookManager::TestHook()->function;} while(0)
-
-#define TESTHOOKENABLED CLRTestHookManager::Enabled()
-#define TESTHOOKSLOWPATH CLRTestHookManager::SlowPathEnabled()
-
-#define MAX_TEST_HOOKS 32
-
-//Forward declarations
-template <typename T> class Volatile;
-extern "C" Volatile<LONG> g_TrapReturningThreads;
-
-
-struct CLRTestHookInfo
-{
-protected:
-    int m_Version;
-    union
-    {
-        ICLRTestHook* v1;
-        ICLRTestHook2* v2;
-        ICLRTestHook3* v3;
-    } m_Hook;
-public:    
-    void Set(ICLRTestHook*);
-    ICLRTestHook* v1();
-    ICLRTestHook2* v2();
-    ICLRTestHook3* v3();
-};
-
-class  CLRTestHookManager: public ICLRTestHookManager2, public ICLRTestHook3
-{
-protected:
-    static CLRTestHookManager* g_pManager;
-    Volatile<LONG> m_nHooks; 
-    Volatile<LONG> m_cRef;
-    CLRTestHookInfo m_pHooks[MAX_TEST_HOOKS];
-    virtual ~CLRTestHookManager();
-public:
-    CLRTestHookManager();
-    STDMETHOD(AddTestHook)(ICLRTestHook* hook);
-    static ICLRTestHookManager* Start();
-    static BOOL Enabled() {return g_pManager!=NULL;};
-    static BOOL  SlowPathEnabled() {return Enabled() && g_TrapReturningThreads;};
-    static CLRTestHookManager* TestHook() {return g_pManager;};
-    static HRESULT CheckConfig();
-    STDMETHOD_(ULONG,AddRef) ();
-    STDMETHOD_(ULONG, Release());
-    STDMETHOD (QueryInterface)(REFIID riid, void  * *ppvObject);
-    STDMETHOD(AppDomainStageChanged)(DWORD adid,DWORD oldstage,DWORD newstage);
-    STDMETHOD(NextFileLoadLevel)(DWORD adid, LPVOID domainfile,DWORD newlevel);
-    STDMETHOD(CompletingFileLoadLevel)(DWORD adid, LPVOID domainfile,DWORD newlevel);
-    STDMETHOD(CompletedFileLoadLevel)(DWORD adid, LPVOID domainfile,DWORD newlevel);
-    STDMETHOD(EnteringAppDomain)(DWORD adid);
-    STDMETHOD(EnteredAppDomain)(DWORD adid);
-    STDMETHOD(LeavingAppDomain)(DWORD adid);
-    STDMETHOD(LeftAppDomain)(DWORD adid);
-    STDMETHOD(UnwindingThreads)(DWORD adid);
-    STDMETHOD(UnwoundThreads)(DWORD adid);     
-    STDMETHOD(AppDomainCanBeUnloaded)(DWORD adid, BOOL bUnsafePoint); 
-    STDMETHOD(AppDomainDestroyed)(DWORD adid);
-    STDMETHOD(EnableSlowPath) (BOOL bEnable);  
-    STDMETHOD(UnloadAppDomain)(DWORD adid,DWORD flags);
-    STDMETHOD(StartingNativeImageBind)(LPCWSTR wszAsmName, BOOL bIsCompilationProcess);
-    STDMETHOD(CompletedNativeImageBind)(LPVOID pFile,LPCUTF8 simpleName, BOOL hasNativeImage);
-    STDMETHOD(AboutToLockImage)(LPCWSTR wszPath, BOOL bIsCompilationProcess);
-    STDMETHOD_(VOID,DoAppropriateWait)( int cObjs, HANDLE *pObjs, INT32 iTimeout, BOOL bWaitAll, int* res);    
-    STDMETHOD(GC)(int generation);
-    STDMETHOD(GetSimpleName)(LPVOID domainfile,LPCUTF8* name); 
-    STDMETHOD(RuntimeStarted)(DWORD code);     
-    STDMETHOD_(INT_PTR,GetCurrentThreadType)(VOID);
-    STDMETHOD_(INT_PTR,GetCurrentThreadLockCount) (VOID);        
-    STDMETHOD_(BOOL,IsPreemptiveGC)(VOID);        
-    STDMETHOD_(BOOL,ThreadCanBeAborted) (VOID);
-    STDMETHOD(ImageMapped(LPCWSTR wszPath, LPCVOID pBaseAddress,DWORD flags));    
-    STDMETHOD(HasNativeImage)(LPVOID domainfile,BOOL* pHasNativeImage);        
-};
-#else
-#define TESTHOOKCALL(function) 
-#define TESTHOOKENABLED FALSE
-#define TESTHOOKSLOWPATH FALSE
-#endif
-#endif
index cc27406..b440807 100644 (file)
@@ -2708,8 +2708,6 @@ void Thread::HandleThreadAbort ()
     STATIC_CONTRACT_THROWS;
     STATIC_CONTRACT_GC_TRIGGERS;
 
-    TESTHOOKCALL(AppDomainCanBeUnloaded(DefaultADID, FALSE));
-
     // It's possible we could go through here if we hit a hard SO and MC++ has called back
     // into the runtime on this thread