#pragma once /** * See README.md for instructions on how to add a new test. */ #include #include namespace torch { namespace jit { #define TH_FORALL_TESTS(_) \ _(ADFormulas) \ _(Attributes) \ _(Blocks) \ _(CallStack) \ _(CallStackCaching) \ _(CodeTemplate) \ _(ControlFlow) \ _(CreateAutodiffSubgraphs) \ _(CustomOperators) \ _(CustomOperatorAliasing) \ _(IValueKWargs) \ _(CustomFusion) \ _(SchemaMatching) \ _(Differentiate) \ _(DifferentiateWithRequiresGrad) \ _(FromQualString) \ _(InternedStrings) \ _(PassManagement) \ _(Proto) \ _(RegisterFusionCachesKernel) \ _(SchemaParser) \ _(TopologicalIndex) \ _(TopologicalMove) \ _(SubgraphUtils) \ _(AliasAnalysis) \ _(ContainerAliasing) \ _(AliasRegistration) \ _(WriteTracking) \ _(Wildcards) \ _(MemoryDAG) \ _(IRParser) \ _(ConstantPooling) \ _(THNNConv) \ _(ATenNativeBatchNorm) \ _(NoneSchemaMatch) \ _(ClassParser) \ _(UnifyTypes) \ _(Profiler) \ _(InsertAndEliminateRedundantGuards) \ _(LoopPeeler) \ _(InsertBailOuts) \ _(PeepholeOptimize) \ _(RecordFunction) \ _(ThreadLocalDebugInfo) \ _(SubgraphMatching) \ _(SubgraphRewriter) \ _(ModuleClone) \ _(ModuleConstant) \ _(ModuleParameter) \ _(ModuleCopy) \ _(ModuleDeepcopy) \ _(ModuleDeepcopyString) \ _(ModuleDeepcopyAliasing) \ _(ModuleDefine) \ _(QualifiedName) \ _(ClassImport) \ _(ScriptObject) \ _(ExtraFilesHookPreference) \ _(SaveExtraFilesHook) \ _(TypeTags) \ _(DCE) \ _(CustomFusionNestedBlocks) \ _(ClassDerive) \ _(SaveLoadTorchbind) \ _(ModuleInterfaceSerialization) \ _(ClassTypeAddRemoveAttr) \ _(Inliner) \ _(LiteInterpreterAdd) \ _(LiteInterpreterConv) \ _(LiteInterpreterInline) \ _(LiteInterpreterTuple) \ _(LiteInterpreterUpsampleNearest2d) \ _(CommonAncestor) \ _(AutogradSymbols) \ _(DefaultArgTypeHinting) \ _(Futures) \ _(MobileTypeParser) \ _(LiteInterpreterBuiltinFunction) \ _(LiteInterpreterPrim) \ _(LiteInterpreterLoadOrigJit) \ _(LiteInterpreterWrongMethodName) \ _(LiteInterpreterParams) \ _(LiteInterpreterSetState) \ _(TorchbindIValueAPI) \ _(LiteInterpreterDict) \ _(FusionAliasing) #if defined(USE_CUDA) #define TH_FORALL_TESTS_CUDA(_) \ _(ArgumentSpec) \ _(CompleteArgumentSpec) \ _(Fusion) \ _(GraphExecutor) \ _(ModuleConversion) \ _(Interp) \ _(GPU_IrGraphGenerator) \ _(GPU_FusionDispatch) \ _(GPU_FusionSimpleArith) \ _(GPU_FusionExprEvalConstants) \ _(GPU_FusionExprEvalBindings) \ _(GPU_FusionExprEvalBasic) \ _(GPU_FusionExprEvalComplex) \ _(GPU_FusionSimpleTypePromote) \ _(GPU_FusionMutator) \ _(GPU_FusionRegister) \ _(GPU_FusionTopoSort) \ _(GPU_FusionTensor) \ _(GPU_FusionTensorContiguity) \ _(GPU_FusionTVSplit) \ _(GPU_FusionTVMerge) \ _(GPU_FusionTVReorder) \ _(GPU_FusionEquality) \ _(GPU_FusionReplaceAll) \ _(GPU_FusionParser) \ _(GPU_FusionDependency) \ _(GPU_FusionCodeGen) \ _(GPU_FusionCodeGen2) \ _(GPU_FusionSimplePWise) \ _(GPU_FusionExecKernel) \ _(GPU_FusionForLoop) \ _(GPU_FusionLoopUnroll) \ _(GPU_FusionUnaryOps) \ _(GPU_FusionBinaryOps) \ _(GPU_FusionTernaryOps) \ _(GPU_FusionCompoundOps) \ _(GPU_FusionCastOps) \ _(GPU_FusionAdvancedComputeAt) \ _(GPU_FusionScalarInputs) \ _(GPU_FusionRFactorReplay) \ _(GPU_FusionReduction) \ _(GPU_FusionReduction2) \ _(GPU_FusionSimpleBCast) #else #define TH_FORALL_TESTS_CUDA(_) \ _(ArgumentSpec) \ _(CompleteArgumentSpec) \ _(Fusion) \ _(GraphExecutor) \ _(ModuleConversion) \ _(Interp) #endif #define DECLARE_JIT_TEST(name) void test##name(); TH_FORALL_TESTS(DECLARE_JIT_TEST) TH_FORALL_TESTS_CUDA(DECLARE_JIT_TEST) #undef DECLARE_JIT_TEST // This test is special since it requires prior setup in python. // So it is not part of the general test list (which is shared between the gtest // and python test runners), but is instead invoked manually by the // torch_python_test.cpp void testEvalModeForLoadedModule(); void testSerializationInterop(); void testTorchSaveError(); } // namespace jit } // namespace torch