public TestRuntime(Driver/*!*/ driver, TestCase/*!*/ testCase) { _driver = driver; _testName = testCase.Name; if (testCase.Options.NoRuntime) { return; } if (_driver.SaveToAssemblies) { Environment.SetEnvironmentVariable("DLR_AssembliesFileName", _testName); } var runtimeSetup = ScriptRuntimeSetup.ReadConfiguration(); var languageSetup = runtimeSetup.AddRubySetup(); runtimeSetup.DebugMode = _driver.IsDebug; runtimeSetup.PrivateBinding = testCase.Options.PrivateBinding; runtimeSetup.HostType = typeof(TestHost); runtimeSetup.HostArguments = new object[] { testCase.Options }; languageSetup.Options["NoAdaptiveCompilation"] = _driver.NoAdaptiveCompilation; languageSetup.Options["CompilationThreshold"] = _driver.CompilationThreshold; languageSetup.Options["Verbosity"] = 2; languageSetup.Options["Compatibility"] = testCase.Options.Compatibility; _runtime = Ruby.CreateRuntime(runtimeSetup); _engine = Ruby.GetEngine(_runtime); _context = (RubyContext)HostingHelpers.GetLanguageContext(_engine); }
public TestRuntime(Driver/*!*/ driver, TestCase/*!*/ testCase) { _driver = driver; _testName = testCase.Name; if (_driver.SaveToAssemblies) { Environment.SetEnvironmentVariable("DLR_AssembliesFileName", _testName); } var runtimeSetup = ScriptRuntimeSetup.ReadConfiguration(); LanguageSetup languageSetup = null; foreach (var language in runtimeSetup.LanguageSetups) { if (language.TypeName == typeof(RubyContext).AssemblyQualifiedName) { languageSetup = language; break; } } runtimeSetup.DebugMode = _driver.IsDebug; languageSetup.Options["InterpretedMode"] = _driver.Interpret; languageSetup.Options["Verbosity"] = 2; languageSetup.Options["Compatibility"] = testCase.Compatibility; _env = Ruby.CreateRuntime(runtimeSetup); _engine = Ruby.GetEngine(_env); _context = Ruby.GetExecutionContext(_engine); }
public TestRuntime(Driver/*!*/ driver, TestCase/*!*/ testCase) { _driver = driver; _testName = testCase.Name; if (testCase.Options.NoRuntime) { return; } if (_driver.SaveToAssemblies) { Environment.SetEnvironmentVariable("DLR_AssembliesFileName", _testName); } var runtimeSetup = ScriptRuntimeSetup.ReadConfiguration(); var languageSetup = runtimeSetup.AddRubySetup(); runtimeSetup.DebugMode = _driver.IsDebug; runtimeSetup.PrivateBinding = testCase.Options.PrivateBinding; languageSetup.Options["NoAdaptiveCompilation"] = _driver.NoAdaptiveCompilation; languageSetup.Options["Verbosity"] = 2; languageSetup.Options["Compatibility"] = testCase.Options.Compatibility; _runtime = Ruby.CreateRuntime(runtimeSetup); _engine = Ruby.GetEngine(_runtime); _context = Ruby.GetExecutionContext(_engine); }
public static int Run(List<string>/*!*/ args) { if (!ParseArguments(args)) { return -3; } int status = 0; if (_runTokenizerDriver) { TokenizerTestDriver driver = new TokenizerTestDriver(Ruby.GetExecutionContext(Ruby.CreateRuntime())); if (!driver.ParseArgs(args)) { return -3; } status = driver.RunTests(); } else { InitializeDomain(); Driver driver = new Driver(); if (Manual.TestCode.Trim().Length == 0) { status = driver.RunUnitTests(args); } else { driver.RunManualTest(); // for case the test is forgotten, this would fail the test suite: status = -2; } } // return failure on bad filter (any real failures throw) return status; }
public Tests(Driver/*!*/ driver) { _driver = driver; _methods = new Action[] { Scenario_Startup, // must be the first test MutableString1, MutableString2, RubyArray_Ctors, RubyArray_Basic, RubyArray_Add, RubyArray_Remove, RubyArray_Insert, RubyArray_Misc, Scenario_ParserLogging, Scenario_RubyTokenizer1, Identifiers1, Identifiers2, Scenario_ParseBigInts1, ParseIntegers1, Scenario_ParseNumbers1, Scenario_ParseInstanceClassVariables1, ParseGlobalVariables1, ParseEscapes1, ParseEolns1, Scenario_ParseRegex1, Scenario_RubyCategorizer1, NameMangling1, NameMangling2, OverloadResolution_Block1, OverloadResolution_ParamArrays1, OverloadResolution_Numeric1, AmbiguousMatch1, Interpreter1, Interpreter2, Interpreter3, Interpreter4, Scenario_RubySimpleCall1, Scenario_RubySimpleCall2, Scenario_RubySimpleCall3, Scenario_RubySimpleCall4, Scenario_RubySimpleCall5, MethodCallCaching1, MethodCallCaching2, MethodCallCaching3, MethodCallCaching4, MethodCallCaching5, MethodCallCaching6, NumericLiterals1, NumericOps1, StringLiterals1, Escapes1, UnicodeEscapes1, UnicodeEscapes2, Heredoc1, Symbols1, KCode1, KCode2, Encoding1, Encoding2, Encoding3, Encoding4, Encoding_Host1, Encoding_Host2, AstLocations1, Scenario_Globals1, Scenario_RubyMethodMissing1, Scenario_RubyMethodMissing2, Scenario_RubySingletonConstants1, Scenario_RubyMath1, StringsPlus, Strings0, Strings1, Strings2, Strings3, Strings4, Strings5, Strings6, Strings7, Strings8, Strings9, ToSConversion1, ToSConversion2, Inspect1, Inspect2, File1, File2, Regex1, Regex2, RegexTransform1, RegexTransform2, RegexEscape1, RegexCondition1, RegexCondition2, Scenario_RubyScopeParsing, Scenario_RubyScopes1, Scenario_RubyScopes2A, Scenario_RubyScopes2B, Scenario_RubyScopes3, Scenario_RubyScopes4, Scenario_RubyScopes5, Scenario_RubyScopes6, Send1, Send2, MethodCallCaching7, MethodCallCaching8, AttributeAccessors1, AttributeAccessors2, AttributeAccessors3, Scenario_RubyDeclarations1, Scenario_RubyDeclarations1A, Scenario_RubyDeclarations1B, Scenario_RubyDeclarations1C, Scenario_RubyDeclarations2, Scenario_RubyDeclarations3, Scenario_RubyDeclarations4, Scenario_RubyInclusions1, Scenario_RubyClassVersions1, Scenario_RubyClassVersions2, InvokeMemberCache1, Scenario_RubyBlockExpressions1, Constants1A, Constants1B, ConstantNames, Constants3, Constants4, UnqualifiedConstants1, LoadAndGlobalConstants, GlobalConstantsInterop, Scenario_ClassVariables1, Scenario_ClassVariables2, Scenario_RubyLocals1, Scenario_MethodAliases1, Scenario_MethodAliases2, Scenario_MethodUndef1, Scenario_MethodUndef2, MethodUndefExpression, Scenario_Assignment1, SetterCallValue, SimpleInplaceAsignmentToIndirectLeftValues1, MemberAssignmentExpression1, MemberAssignmentExpression2, MemberAssignmentExpression3, Scenario_ParallelAssignment1, Scenario_ParallelAssignment2, Scenario_ParallelAssignment4, Scenario_ParallelAssignment5, Scenario_ParallelAssignment6, Scenario_ParallelAssignment7, Scenario_ParallelAssignment8, Scenario_ParallelAssignment9, Scenario_ParallelAssignment10, BlockEmpty, RubyBlocks0, RubyBlocks_Params1, RubyBlocks_Params2, ProcYieldCaching1, ProcCallCaching1, ProcSelf1, RubyBlocks2, RubyBlocks3, RubyBlocks5, RubyBlocks6, RubyBlocks7, RubyBlocks8, RubyBlocks9, RubyBlocks10, RubyBlocks11, RubyBlocks12, RubyBlocks13, RubyBlocks14, RubyBlocks15, RubyBlocks16, RubyBlocks17, RubyBlocks18, BlockArity1, Scenario_RubyBlockArgs1, Scenario_RubyProcYieldArgs1, Scenario_RubyProcCallArgs1A, Scenario_RubyProcCallArgs1B, Scenario_RubyBlockArgs2, Scenario_RubyProcCallArgs2A, Scenario_RubyProcCallArgs2B, Scenario_RubyProcCallArgs2C, Scenario_RubyProcCallArgs2D, Scenario_RubyBlockArgs3, Scenario_RubyBlockArgs4A, Scenario_RubyBlockArgs4B, Scenario_RubyBlockArgs5, Scenario_RubyBlockArgs6, // TODO: Scenario_RubyBlockArgs7, Scenario_RubyBlockArgs8, Scenario_RubyBlockArgs9, Scenario_RubyBlockArgs10, Proc_RhsAndBlockArguments1, RubyProcs1, RubyProcs2, RubyProcArgConversion1, RubyProcArgConversion2, RubyProcArgConversion3, RubyProcArgConversion4, ProcNew1, ProcNew2, MethodToProc1, DefineMethod1, DefineMethod2, ProcPosition1, Scenario_RubyInitializers0, Scenario_RubyInitializers1, Scenario_RubyInitializers2A, Scenario_RubyInitializers2B, Scenario_RubyInitializers3, Scenario_RubyInitializers4A, Scenario_RubyInitializers4B, Scenario_RubyInitializers4C, Scenario_RubyInitializers5, RubyInitializersCaching1, RubyInitializersCaching2, RubyInitializersCaching3, RubyAllocators1, Scenario_RubyForLoop1, // TODO: Python interop: Scenario_RubyForLoop2, Scenario_RubyWhileLoop1, Scenario_RubyWhileLoop2, Scenario_RubyWhileLoop3, Scenario_RubyWhileLoop4, Scenario_RubyWhileLoop5, Scenario_RubyWhileLoop6, Scenario_RubyUntilLoop1, Scenario_WhileLoopCondition1, PostTestWhile1, PostTestUntil1, WhileModifier1, UntilModifier1, WhileModifier2, UntilModifier2, RangeConditionInclusive1, RangeConditionExclusive1, RangeCondition1A, RangeCondition1B, RangeCondition1C, RangeCondition2, Scenario_RubyClosures1, Scenario_RubyParams1, Scenario_RubyParams2, Scenario_RubyReturn1, Scenario_RubyArrays1, Scenario_RubyArrays2, Scenario_RubyArrays3, Scenario_RubyArrays4, Scenario_RubyArrays5, Scenario_RubyArrays6, Scenario_RubyHashes1A, Scenario_RubyHashes1B, Scenario_RubyHashes1C, Scenario_RubyHashes2, Scenario_RubyHashes3, Scenario_RubyHashes4, Scenario_RubyArgSplatting1, Scenario_RubyArgSplatting2, Scenario_RubyArgSplatting3, Scenario_RubyArgSplatting4, Scenario_RubyArgSplatting5, Scenario_RubyArgSplatting6, Scenario_CaseSplatting1, Scenario_RubyBoolExpressions1, Scenario_RubyBoolExpressions2, Scenario_RubyBoolExpressions3, Scenario_RubyBoolExpressions4, Scenario_RubyBoolExpressionsWithReturn1, Scenario_RubyBoolExpressionsWithReturn2, TernaryConditionalWithJumpStatements1, TernaryConditionalWithJumpStatements2, Scenario_RubyBoolAssignment, Scenario_RubyIfExpression1, Scenario_RubyIfExpression2, Scenario_RubyUnlessExpression1, Scenario_RubyConditionalExpression1, ConditionalStatement1, ConditionalStatement2, Scenario_UninitializedVars1, Scenario_UninitializedVars2, InstanceVariables1, InstanceVariables2, RubyHosting_DelegateConversions, RubyHosting1A, RubyHosting1B, RubyHosting1C, RubyHosting1D, RubyHosting2, RubyHosting3, CrossRuntime1, CrossRuntime2, Scenario_RubyConsole1, ObjectOperations1, ObjectOperations2, PythonInterop1, PythonInterop2, PythonInterop3, PythonInterop4, PythonInterop5, // TODO (bug in IronPython): PythonInterop6, CustomTypeDescriptor1, CustomTypeDescriptor2, Loader_Assemblies1, Require1, RequireInterop1, RequireInterop2, Load1, LibraryLoader1, ClrFields1, ClrTypes1, ClrNamespaces1, ClrGenerics1, ClrGenerics2, ClrMethods1, ClrMethods2, ClrMethods3, ClrMethods4, ClrMembers1, ClrVisibility1, ClrVisibility2, ClrOverloadInheritance1, ClrOverloadInheritance2, ClrOverloadInheritance3, ClrOverloadInheritance4, ClrOverloadInheritance5, ClrOverloadInheritance6, ClrMethodEnumeration1, ClrMethodEnumeration2, ClrIndexers1, ClrGenericMethods1, ClrOverloadSelection1, ClrOverloadSelection2, ClrInterfaces1, ClrInterfaces2, ClrInclude1, ClrNew1, ClrNew2, ClrAlias1, ClrEnums1, ClrEnums2, ClrDelegates1, ClrDelegates2, ClrEvents1, ClrEvents2, ClrEvents3, ClrEvents4, ClrOverride1, ClrOverride2, ClrOverride3, //TODO: Fix ClrOverride4, ClrEventImpl1, ClrDetachedVirtual1, ClrConstructor1, ClrConstructor2, ClrConstructor3, ClrConstructor4, ClrConstructor5, ClrPrimitiveNumericTypes1, ClrArrays1, ClrArrays2, ClrChar1, ClrOperators1, ClrOperators2, ClrOperators3, ClrConversions1, ClrHashEqualsToString1, ClrHashEqualsToString2, ClrHashEqualsToString3, ClrHashEquals4, Scenario_RubyEngine1, Scenario_RubyInteractive1, Scenario_RubyInteractive2, Scenario_RubyReturnValues1, Scenario_RubyReturnValues2, Scenario_RubyReturnValues3, Scenario_RubyReturnValues4, Scenario_RubyReturnValues5, Scenario_RubyReturnValues6, Scenario_RubyExceptions1, Scenario_RubyExceptions1A, Scenario_RubyExceptions2A, Scenario_RubyExceptions2B, Scenario_RubyExceptions2C, Scenario_RubyExceptions2D, Scenario_RubyExceptions3, Scenario_RubyExceptions4, Scenario_RubyExceptions5, Scenario_RubyExceptions6, Scenario_RubyExceptions7, Scenario_RubyExceptions8, Scenario_RubyExceptions9, Scenario_RubyExceptions10, Scenario_RubyExceptions11, Scenario_RubyExceptions12, Scenario_RubyExceptions12A, Scenario_RubyExceptions13, Scenario_RubyExceptions14, Scenario_RubyExceptions15, Scenario_RubyExceptions16, JumpFromEnsure1, Scenario_RubyExceptions_Globals, Scenario_RubyRescueStatement1, Scenario_RubyRescueExpression1, Scenario_RubyRescueExpression2, ExceptionArg1, ExceptionArg2, RescueSplat1, RescueSplat2, RescueSplat3, ExceptionMapping1, ExceptionMapping2, ExceptionMapping3, ClassVariables1, UnqualifiedConstants2, AliasMethodLookup1, UndefMethodLookup, MethodAdded1, MethodLookup1, Visibility1, Visibility2A, Visibility2B, Visibility2C, Visibility3, Visibility4, VisibilityCaching1, VisibilityCaching2, DefineMethodVisibility1, DefineMethodVisibility2A, DefineMethodVisibility2B, AliasedMethodVisibility1, AttributeAccessorsVisibility1, ModuleFunctionVisibility1, ModuleFunctionVisibility2, MethodDefinitionInDefineMethod1A, MethodDefinitionInDefineMethod1B, MethodDefinitionInDefineMethod2A, MethodDefinitionInDefineMethod2B, MethodDefinitionInModuleEval1A, MethodDefinitionInModuleEval1B, MainSingleton1, MainSingleton2, Singletons1A, Singletons1B, Singletons1C, Singletons1D, Singletons2, Singletons3, SingletonCaching1, SingletonCaching2A, SingletonCaching2B, SingletonCaching2C, Scenario_ClassVariables_Singletons, AllowedSingletons1, Super1, SuperParameterless1, SuperParameterless2, SuperParameterless3, Super2, SuperToAttribute1, SuperAndMethodMissing1, SuperAndMethodMissing2, SuperCaching1, SuperInDefineMethod1, SuperInDefineMethod2, // TODO: SuperInDefineMethod3, SuperInTopLevelCode1, SuperInAliasedDefinedMethod1, Scenario_RubyDefinedOperator_Globals1, Scenario_RubyDefinedOperator_Globals2, Scenario_RubyDefinedOperator_Methods1, Scenario_RubyDefinedOperator_Methods2, Scenario_RubyDefinedOperator_Constants1, Scenario_RubyDefinedOperator_Constants2, Scenario_RubyDefinedOperator_Expressions1, Scenario_RubyDefinedOperator_InstanceVariables1, Scenario_RubyDefinedOperator_ClassVariables1, Scenario_RubyDefinedOperator_ClassVariables2, Scenario_RubyDefinedOperator_Yield1, Scenario_RubyDefinedOperator_Locals1, Scenario_ModuleOps_Methods, Scenario_MainSingleton, Scenario_RubyThreads1, Scenario_YieldCodeGen, Methods1, MethodDef1, ToIntegerConversion1, ToIntToStrConversion1, ConvertToFixnum1, ProtocolCaching1, ProtocolCaching2, ProtocolCaching3, ProtocolCaching4, MethodAliasExpression, ClassDuplication1, ClassDuplication2, ClassDuplication3, ClassDuplication4, ClassDuplication5, StructDup1, ClassDuplication6, Clone1, Dup1, Structs1, MetaModules1, MetaModulesDuplication1, Autoload1, ModuleFreezing1, ModuleFreezing2, // eval, binding: Eval1, Eval2, Eval3, Eval4, Eval5, Eval6, EvalReturn1, EvalReturn2, EvalReturn3, EvalBreak1, EvalBreak2, EvalRetry1, EvalRetry2, EvalRedo1, EvalNext1, LocalNames1, LocalNames2, LocalNames3, LocalNames4, LiftedParameters1, Binding1, TopLevelBinding_RubyProgram, EvalWithProcBinding1, ModuleEvalProc1, ModuleEvalProc2, ModuleEvalProc3, InstanceEvalProc1, // TODO: InstanceEvalProc2, ModuleInstanceEvalProc3, ModuleClassNew1, ModuleClassNew2, ModuleEvalString1, InstanceEvalString1, ModuleEvalString2, InstanceEvalString2, ModuleInstanceEvalString3, AliasInModuleEval1, MethodAliasInModuleEval1, SuperInModuleEval1, // TODO: SuperParameterlessEval1, // TODO: SuperParameterlessEval2, SuperInDefineMethodEval1, // TODO: NamesEncoding1, Backtrace1, Backtrace2, Backtrace3, Backtrace4, Dlr_RubySnippet, Dlr_ClrSubtype, Dlr_MethodMissing, Dlr_Miscellaneous, Dlr_Conversions, Dlr_Indexable, Dlr_Number, Dlr_Comparable, Dlr_RubyObjects, Dlr_Methods, Dlr_Visibility, Dlr_Languages, }; }
public Tests(Driver/*!*/ driver) { _driver = driver; _methods = new Action[] { Scenario_Startup, // must be the first test MutableString_Factories, MutableString_GetHashCode, MutableString_IsAscii, MutableString_Length, MutableString_CompareTo, MutableString_Append_Byte, MutableString_Append_Char, MutableString_Append, MutableString_Insert_Byte, MutableString_Insert_Char, MutableString_Remove_Byte, MutableString_Remove_Char, MutableString_SwitchRepr, MutableString_Concatenate, MutableString_Reverse, MutableString_Translate1, MutableString_StartsWith1, MutableString_IndexOf1, MutableString_LastIndexOf1, MutableString_Index1, MutableString_IndexRegex1, MutableString_Characters1, MutableString_Bytes1, MutableString_ChangeEncoding1, MutableString_ValidEncoding1, RubyArray_Ctors, RubyArray_Basic, RubyArray_Add, RubyArray_Remove, RubyArray_Insert, RubyArray_Misc, Scenario_ParserLogging, Parser1, ParserErrors1, TokenizeIdentifiers1, Identifiers2, ParseBigInts1, ParseIntegers1, TokenizeNumbers1, TokenizeInstanceClassVariables1, TokenizeGlobalVariables1, TokenizeEscapes1, TokenizeEolns1, TokenizeRegex1, TokenizeStrings1, TokenizeStrings2, TokenizeEscapes2, Heredoc1, LexicalState1, ParseSymbols1, TokenCategorizer1, TokenCategorizer2, NameMangling1, NameMangling2, DelegateChainClone1, Constants1A, Constants1B, ConstantNames, Constants3, Constants4, OverloadResolution_Block1, OverloadResolution_ParamArrays1, OverloadResolution_Numeric1, AmbiguousMatch1, Interpreter1A, Interpreter1B, Interpreter1C, Interpreter1D, Interpreter_JumpFromFinally1, Interpreter_JumpFromFinally2, Interpreter2, Interpreter3, Interpreter4, Interpreter5, Interpreter6, InterpreterNumeric1, InterpreterMethodCalls1, InterpreterLoops1, InterpreterLoops2, InterpreterLoops3, InterpreterLoops4, SimpleCall1, SimpleCall2, SimpleCall3, SimpleCall4, SimpleCall5, SimpleCall6, MethodParams1, MethodCallCaching1, MethodCallCaching2, MethodCallCaching3, MethodCallCaching_MethodMissing1, MethodCallCaching_MethodMissing2, MethodCallCaching_MethodMissing3, MethodCallCaching_MethodMissing4, MethodCallCaching_MethodMissing5, NumericLiterals1, NumericOps1, UnicodeEscapes1, CharacterToken1, Encoding1, Encoding2, Encoding4, Encoding_Host1, Encoding_Host2, AstLocations1, Scenario_Globals1, Scenario_RubyMethodMissing1, Scenario_RubyMethodMissing2, Scenario_RubySingletonConstants1, Scenario_RubyMath1, StringsPlus, Strings0, Strings1, Strings2, Strings3, Strings4, Strings5, Strings6, Strings7, Strings8, Strings9, ToSConversion1, ToSConversion2, Symbols1, Inspect2, File1, File_AppendBytes1, File_WriteBytes1, File_ReadLine1, Dir2, Regex1, Regex2, RegexTransform1, RegexTransform2, RegexEscape1, RegexCondition1, RegexCondition2, Scenario_RubyScopeParsing, Scenario_RubyScopes1, Scenario_RubyScopes2A, Scenario_RubyScopes2B, Scenario_RubyScopes3, Scenario_RubyScopes4, Scenario_RubyScopes5, Scenario_RubyScopes6, Send1, Send2, MethodCallCaching7, MethodCallCaching8, AttributeAccessors1, AttributeAccessors2, AttributeAccessors3, Scenario_RubyDeclarations1, Scenario_RubyDeclarations1A, Scenario_RubyDeclarations1B, Scenario_RubyDeclarations1C, Scenario_RubyDeclarations2, Scenario_RubyDeclarations3, Scenario_RubyDeclarations4, Scenario_RubyInclusions1, Scenario_RubyClassVersions1, Scenario_RubyClassVersions2, InvokeMemberCache1, Scenario_RubyBlockExpressions1, UnqualifiedConstants1, LoadAndGlobalConstants, GlobalConstants1, ConstantCaching_Unqualified1, ConstantCaching_Unqualified2, ConstantCaching_Unqualified3, ConstantCaching_Unqualified4, ConstantCaching_Unqualified5, ConstantCaching_Unqualified6, ConstantCaching_Unqualified7, ConstantCaching_Unqualified_IsDefined1, ConstantCaching_Qualified1, ConstantCaching_Qualified2, ConstantCaching_Qualified_IsDefined1, ConstantCaching_Qualified_IsDefined2, ConstantCaching_CrossRuntime1, ConstantCaching_AutoUpdating1A, ConstantCaching_AutoUpdating1B, Scenario_ClassVariables1, Scenario_ClassVariables2, Scenario_RubyLocals1, Scenario_MethodAliases1, Scenario_MethodAliases2, Scenario_MethodUndef1, Scenario_MethodUndef2, MethodUndefExpression, Scenario_Assignment1, SetterCallValue, SimpleInplaceAsignmentToIndirectLeftValues1, MemberAssignmentExpression1, MemberAssignmentExpression2, MemberAssignmentExpression3, Scenario_ParallelAssignment1, Scenario_ParallelAssignment2, Scenario_ParallelAssignment4, Scenario_ParallelAssignment5, Scenario_ParallelAssignment6, Scenario_ParallelAssignment7, Scenario_ParallelAssignment8, Scenario_ParallelAssignment9, Scenario_ParallelAssignment10, BlockEmpty, RubyBlocks0, RubyBlocks_Params1, RubyBlocks_Params2, RubyBlocks_Params3, ProcYieldCaching1, ProcCallCaching1, BlockDefinition1, ProcSelf1, RubyBlocks2, RubyBlocks3, RubyBlocks5, RubyBlocks6, RubyBlocks7, RubyBlocks8, RubyBlocks9, RubyBlocks10A, RubyBlocks10B, RubyBlocks11, RubyBlocks12, RubyBlocks13, RubyBlocks14A, RubyBlocks14B, RubyBlocks14C, RubyBlocks15, RubyBlocks16, RubyBlocks17, RubyBlocks18, BlockReturnOptimization1, BlockReturnOptimization2, BlockReturnOptimization3, BlockReturnOptimization4, BlockReturnOptimization5, BlockReturnOptimization6, BlockReturnOptimization7, BlockArity1, Scenario_RubyProcYieldArgs1, Scenario_RubyProcYieldArgs2, Scenario_RubyProcYieldArgs3, Scenario_RubyProcYieldArgs4, Scenario_RubyProcCallArgs1, Scenario_RubyProcCallArgs2A, Scenario_RubyProcCallArgs2B, Scenario_RubyProcCallArgs2C, Scenario_RubyProcCallArgs2D, Scenario_RubyBlockArgs3, Scenario_RubyBlockArgs4A, Scenario_RubyBlockArgs4B, Scenario_RubyBlockArgs5, Scenario_RubyBlockArgs6, Proc_RhsAndBlockArguments1, Block_ProcParams1, RubyProcs1, RubyProcs2, RubyProcArgConversion1, RubyProcArgConversion2, RubyProcArgConversion3, RubyProcArgConversion4, ProcNew1, ProcNew2, ProcNew3, ProcNew4, MethodToProc1, DefineMethod1, // TODO: DefineMethod2, ProcPosition1, Scenario_RubyInitializers0, Scenario_RubyInitializers1, Scenario_RubyInitializers2A, Scenario_RubyInitializers2B, Scenario_RubyInitializers3, Scenario_RubyInitializers4A, Scenario_RubyInitializers4B, Scenario_RubyInitializers4C, Scenario_RubyInitializers5, Scenario_RubyInitializers6, RubyInitializersCaching1, RubyInitializersCaching2, RubyInitializersCaching3, RubyAllocators1, RubyForLoop1, // TODO: Python interop: Scenario_RubyForLoop2, WhileLoop1, LoopBreak1, LoopBreak2, LoopBreak3, LoopRedo1, LoopNext1, MethodBreakRetryRedoNext1, Scenario_RubyUntilLoop1, Scenario_WhileLoopCondition1, PostTestWhile1, PostTestUntil1, WhileModifier1, UntilModifier1, WhileModifier2, UntilModifier2, RangeConditionInclusive1, RangeConditionExclusive1, RangeCondition1A, RangeCondition1B, RangeCondition1C, RangeCondition2, Scenario_RubyClosures1, Scenario_RubyParams1, Scenario_RubyParams2, Scenario_RubyArrays1, Scenario_RubyArrays2, Scenario_RubyArrays3, Scenario_RubyArrays4, Scenario_RubyArrays5, Scenario_RubyArrays6, Scenario_RubyHashes1A, Scenario_RubyHashes1B, Scenario_RubyHashes1C, Scenario_RubyHashes2, Scenario_RubyHashes3, Scenario_RubyHashes4, Scenario_RubyHashes5, Scenario_RubyArgSplatting1, Scenario_RubyArgSplatting2, Scenario_RubyArgSplatting3, Scenario_RubyArgSplatting4, Scenario_RubyArgSplatting5, Scenario_RubyArgSplatting6, Scenario_CaseSplatting1, SplattingProtocol1, Scenario_RubyBoolExpressions1, Scenario_RubyBoolExpressions2, Scenario_RubyBoolExpressions3, Scenario_RubyBoolExpressions4, Scenario_RubyBoolExpressions5, Scenario_RubyBoolExpressionsWithReturn1, Scenario_RubyBoolExpressionsWithReturn2, TernaryConditionalWithJumpStatements1, TernaryConditionalWithJumpStatements2, Scenario_RubyBoolAssignment, Scenario_RubyIfExpression1, Scenario_RubyIfExpression2, Scenario_RubyUnlessExpression1, Scenario_RubyConditionalExpression1, ConditionalStatement1, ConditionalStatement2, Scenario_UninitializedVars1, Scenario_UninitializedVars2, InstanceVariables1, InstanceVariables2, InstanceVariables3, InstanceVariables4, InstanceVariables5, InstanceVariables6, InstanceVariables7, InstanceVariables10, InstanceVariables20, RubyHosting_DelegateConversions, RubyHosting1A, RubyHosting1B, RubyHosting1C, RubyHosting1D, RubyHosting1E, RubyHosting1F, RubyHosting2, RubyHosting3, RubyHosting4, RubyHosting5, RubyHosting_Scopes1, RubyHosting_Scopes2, CrossRuntime1, CrossRuntime2, Scenario_RubyConsole1, ObjectOperations1, ObjectOperations2, PythonInterop1, PythonInterop2, PythonInterop3, PythonInterop4, PythonInterop5, // TODO: PythonInterop_InvokeMember_Fallback1, PythonInterop_InvokeMember_Fallback2, // TODO: PythonInterop_Indexers_Fallback1, // TODO: PythonInterop_Operators_Fallback1, PythonInterop_NamedIndexers1, CustomTypeDescriptor1, CustomTypeDescriptor2, Loader_Assemblies1, Require1, RequireInterop1, RequireInterop2, Load1, LibraryLoader1, LibraryLoader2, ClrFields1, ClrTypes1, ClrNamespaces1, ClrNamespaces2, ClrGenerics1, ClrGenerics2, ClrGenerics3, ClrMethods1, ClrMethods2, ClrMethods3, ClrMethods4, ClrMembers1, ClrVisibility1, ClrVisibility2, ClrExtensionMethods0, ClrExtensionMethods1, ClrExtensionMethods2, ClrExtensionMethods3, ClrExtensionMethods4, ClrExtensionMethods5, ClrOverloadInheritance1, ClrOverloadInheritance2, ClrOverloadInheritance3, ClrOverloadInheritance4, ClrOverloadInheritance5, ClrOverloadInheritance6, ClrOverloadInheritance7, ClrOverloadInheritance_ClrMembers1, ClrOverloadInheritance_ExtensionMethods1, ClrOverloadInheritance_ExtensionMethods2, ClrMethodEnumeration1, ClrMethodEnumeration2, ClrMethodEnumeration_InvalidNames1, ClrIndexers1, ClrGenericMethods1, ClrGenericMethods2, ClrGenericParametersInference1, ClrOverloadSelection1, ClrOverloadSelection2, ClrNewSlot1, ClrInterfaces1, ClrExplicitInterfaces1, ClrInclude1, ClrNew1, ClrNew2, ClrAlias1, ClrEnums1, ClrEnums2, ClrEnums3, ClrDelegates1, ClrDelegates2, ClrEvents1, ClrEvents2, ClrEvents3, ClrEvents4, ClrOverride1, ClrOverride2, ClrOverride3, ClrOverride4, ClrOverride5, ClrOverride6, ClrEventImpl1, ClrDetachedVirtual1, ClrConstructor1, ClrConstructor2, ClrConstructor3, ClrConstructor4, ClrConstructor5, ClrPrimitiveNumericTypes1, ClrArrays1, ClrArrays2, ClrChar1, ClrOperators1, ClrOperators2, ClrOperators3, ClrConversions1, ClrHashEqualsToString1, ClrHashEqualsToString2, ClrHashEqualsToString3, ClrToString1, ClrHashEquals4, ClrTypeVariance1, HostingDefaultOptions1, Interactive1, Interactive2, Return1, Return2, Return3, Return4, Return5, Return6, Return7, Return8, Scenario_RubyExceptions1, Scenario_RubyExceptions1A, Scenario_RubyExceptions2A, Scenario_RubyExceptions2B, Scenario_RubyExceptions2C, Scenario_RubyExceptions2D, Scenario_RubyExceptions3, Scenario_RubyExceptions4, Scenario_RubyExceptions5, Scenario_RubyExceptions6, Scenario_RubyExceptions7, Scenario_RubyExceptions8, Scenario_RubyExceptions9, Scenario_RubyExceptions10, Scenario_RubyExceptions11, Scenario_RubyExceptions12, Scenario_RubyExceptions12A, Scenario_RubyExceptions13, Scenario_RubyExceptions14, Scenario_RubyExceptions15, Scenario_RubyExceptions16, JumpFromEnsure1, Scenario_RubyExceptions_Globals, Scenario_RubyRescueStatement1, Scenario_RubyRescueExpression1, Scenario_RubyRescueExpression2, ExceptionArg1, ExceptionArg2, RescueSplat1, RescueSplat2, RescueSplat3, RescueSplat4, RescueSplat5, ExceptionMapping1, ExceptionMapping2, ExceptionMapping3, ClassVariables1, UnqualifiedConstants2, AliasMethodLookup1, AliasMethodLookup3, UndefMethodLookup1, UndefMethodLookup2, UndefMethodLookup3, UndefMethodLookup4, UndefMethodLookup6, MethodAdded1, MethodLookup1, Visibility1, Visibility2A, Visibility2B, Visibility2C, Visibility3, Visibility4, VisibilityCaching1, VisibilityCaching2, DefineMethodVisibility1, DefineMethodVisibility2B, AliasedMethodVisibility1, AttributeAccessorsVisibility1, ModuleFunctionVisibility1, ModuleFunctionVisibility2, MethodDefinitionInDefineMethod1A, MethodDefinitionInDefineMethod2A, MethodDefinitionInModuleEval1A, MainSingleton1, MainSingleton2, Singletons1A, Singletons1B, Singletons1C, Singletons1D, Singletons2, Singletons3, SingletonCaching1, SingletonCaching2A, SingletonCaching2B, SingletonCaching2C, Scenario_ClassVariables_Singletons, AllowedSingletons1, AllowedSingletons2, SingletonMethodDefinitionOnSingletons1, ModuleSingletons1, ClassSingletons1, DummySingletons1, DummySingletons2, Super1, SuperParameterless1, SuperParameterless2A, SuperParameterless2B, SuperParameterless3, Super2, SuperToAttribute1, SuperAndMethodMissing1, SuperAndMethodMissing2, SuperCaching1, SuperInBlocks1, SuperInDefineMethod1, SuperInDefineMethod2, SuperInDefineMethod3, SuperInDefineMethod4, SuperInDefineMethod5, SuperInTopLevelCode1, SuperInAliasedDefinedMethod1, DefinedOperator_Globals1, DefinedOperator_Globals2, DefinedOperator_Methods1, DefinedOperator_Methods2, DefinedOperator_Constants1, DefinedOperator_Constants2, DefinedOperator_Constants3, DefinedOperator_Expressions1, DefinedOperator_InstanceVariables1, DefinedOperator_ClassVariables1, DefinedOperator_ClassVariables2, DefinedOperator_Yield1, DefinedOperator_Locals1, DefinedOperator_Super1, Scenario_ModuleOps_Methods, Scenario_MainSingleton, Scenario_RubyThreads1, Scenario_YieldCodeGen, Methods1, MethodDef1, ToIntegerConversion1, ToIntToStrConversion1, ConvertToFixnum1, ProtocolCaching1, ProtocolCaching2, ProtocolCaching3, ProtocolCaching4, MethodAliasExpression, BasicObject1, BasicObject2, ClassDuplication1, ClassDuplication2, ClassDuplication3, ClassDuplication4, ClassDuplication5, StructDup1, ClassDuplication6, ClassDuplication7, Clone1, Dup1, Structs1, MetaModules1, MetaModulesDuplication1, Autoload1, ModuleFreezing1, ModuleFreezing2, // eval, binding: Eval1, Eval2, Eval3, Eval4, Eval5, Eval6, EvalReturn1, EvalReturn2, EvalReturn3, EvalReturn4, EvalBreak1, EvalBreak2, EvalBreak3, EvalRetry1, EvalRetry2, EvalRedo1, EvalNext1, LocalNames1, LocalNames2, LocalNames3, LocalNames4, LiftedParameters1, Binding1, TopLevelBinding_RubyProgram, EvalWithProcBinding1, ModuleEvalProc1, ModuleEvalProc2, ModuleEvalProc3, InstanceEvalProc1, InstanceEvalProc2, ModuleInstanceEvalProc3, ModuleClassNew1, ModuleClassNew2, ModuleEvalString1, InstanceEvalString1, ModuleEvalString2, InstanceEvalString2, ModuleInstanceEvalString3, AliasInModuleEval1, MethodAliasInModuleEval1, SuperInModuleEval1, SuperCallInEvalWithBinding19, // TODO: SuperParameterlessEval1, // TODO: SuperParameterlessEval2, SuperInDefineMethodEval1, // TODO: NamesEncoding1, BEGIN1, BEGIN2, SymbolToProc1, Backtrace1, Backtrace2, Backtrace3, Backtrace4, Backtrace5, Backtrace6, Backtrace7, Dlr_RubySnippet, Dlr_ClrSubtype, Dlr_MethodMissing, Dlr_Miscellaneous, Dlr_Conversions1, Dlr_Splatting1, Dlr_Indexable, Dlr_Number, Dlr_Comparable, Dlr_Equatable, Dlr_RubyObjects, Dlr_Methods, Dlr_Visibility, Dlr_Languages, Dlr_DynamicObject1, Dlr_DynamicObject2, Dlr_DynamicObject3, Serialization1, #if !CLR2 ClrBigIntegerV4, #endif BigInteger1, GcdLcm1, }; }
public static int Run(List<string>/*!*/ args) { if (Thread.CurrentThread.CurrentCulture.ToString() != "en-US") { Console.WriteLine("Current culture: {0}", Thread.CurrentThread.CurrentCulture); } if (!ParseArguments(args)) { return -3; } int status = 0; if (_runTokenizerDriver) { TokenizerTestDriver driver = new TokenizerTestDriver((RubyContext)HostingHelpers.GetLanguageContext(Ruby.CreateEngine())); if (!driver.ParseArgs(args)) { return -3; } status = driver.RunTests(); } else { InitializeDomain(); Driver driver = new Driver(); if (Manual.TestCode.Trim().Length == 0) { status = driver.RunUnitTests(args); } else { driver.RunManualTest(); // for case the test is forgotten, this would fail the test suite: status = -2; } } // return failure on bad filter (any real failures throw) return status; }
public Tests(Driver/*!*/ driver) { _driver = driver; _methods = new Action[] { Scenario_Startup, // must be the first test Scenario_ParserLogging, Scenario_RubyTokenizer1, Identifiers1, Identifiers2, Scenario_ParseBigInts1, Scenario_ParseNumbers1, Scenario_ParseInstanceClassVariables1, Scenario_ParseRegex1, Scenario_RubyCategorizer1, Scenario_RubyNameMangling1, Scenario_RubyNameMangling2, OverloadResolution_Block, Scenario_RubySimpleCall1, Scenario_RubySimpleCall2, Scenario_RubySimpleCall3, Scenario_RubySimpleCall4, Scenario_RubySimpleCall5, NumericLiterals1, StringLiterals1, Escapes1, UnicodeEscapes1, UnicodeEscapes2, Heredoc1, Symbols1, UnicodeIdentifiers1, Encoding1, Encoding2, Encoding3, Encoding4, Encoding5, Encoding_Host1, Encoding_Host2, AstLocations1, Scenario_Globals1, Scenario_RubyMethodMissing1, Scenario_RubyMethodMissing2, Scenario_RubySingletonConstants1, Scenario_RubyMath1, StringsPlus, Strings0, Strings1, Strings2, Strings3, Strings4, Strings5, Strings6, Strings7, Strings8, // TODO: Strings9, Regex1, Regex2, RegexTransform1, RegexTransform2, RegexEscape1, RegexCondition1, RegexCondition2, Scenario_RubyScopeParsing, Scenario_RubyScopes1, Scenario_RubyScopes2A, Scenario_RubyScopes2B, Scenario_RubyScopes3, Scenario_RubyScopes4, Scenario_RubyScopes5, Scenario_RubyScopes6, Send1, AttributeAccessors1, AttributeAccessors2, Scenario_RubyDeclarations1, Scenario_RubyDeclarations1A, Scenario_RubyDeclarations1B, Scenario_RubyDeclarations1C, Scenario_RubyDeclarations2, Scenario_RubyDeclarations3, Scenario_RubyDeclarations4, Scenario_RubyInclusions1, Scenario_RubyClassVersions1, Scenario_RubyClassVersions2, InvokeMemberCache1, Scenario_RubyBlockExpressions1, Constants1A, Constants1B, ConstantNames, Constants3, Constants4, UnqualifiedConstants1, LoadAndGlobalConstants, GlobalConstantsInterop, Scenario_ClassVariables1, Scenario_ClassVariables2, Scenario_RubyLocals1, Scenario_MethodAliases1, Scenario_MethodAliases2, Scenario_MethodUndef1, Scenario_MethodUndef2, MethodUndefExpression, Scenario_Assignment1, SetterCallValue, SimpleInplaceAsignmentToIndirectLeftValues1, MemberAssignmentExpression1, MemberAssignmentExpression2, MemberAssignmentExpression3, Scenario_ParallelAssignment1, Scenario_ParallelAssignment2, Scenario_ParallelAssignment4, Scenario_ParallelAssignment5, Scenario_ParallelAssignment6, Scenario_ParallelAssignment7, Scenario_ParallelAssignment8, Scenario_ParallelAssignment9, Scenario_ParallelAssignment10, BlockEmpty, Scenario_RubyBlocks0, Scenario_RubyBlocks_Params1, Scenario_RubyBlocks_Params2, ProcYieldCaching1, ProcCallCaching1, ProcSelf1, Scenario_RubyBlocks2, Scenario_RubyBlocks3, Scenario_RubyBlocks5, Scenario_RubyBlocks6, Scenario_RubyBlocks7, Scenario_RubyBlocks8, Scenario_RubyBlocks9, Scenario_RubyBlocks10, Scenario_RubyBlocks11, Scenario_RubyBlocks12, Scenario_RubyBlocks13, Scenario_RubyBlocks14, Scenario_RubyBlocks15, Scenario_RubyBlocks16, Scenario_RubyBlocks17, BlockArity1, Scenario_RubyBlockArgs1, Scenario_RubyProcYieldArgs1, Scenario_RubyProcCallArgs1A, Scenario_RubyProcCallArgs1B, Scenario_RubyBlockArgs2, Scenario_RubyProcCallArgs2A, Scenario_RubyProcCallArgs2B, Scenario_RubyProcCallArgs2C, Scenario_RubyProcCallArgs2D, Scenario_RubyBlockArgs3, Scenario_RubyBlockArgs4A, Scenario_RubyBlockArgs4B, Scenario_RubyBlockArgs5, Scenario_RubyBlockArgs6, // TODO: Scenario_RubyBlockArgs7, Scenario_RubyBlockArgs8, Scenario_RubyBlockArgs9, Scenario_RubyBlockArgs10, Proc_RhsAndBlockArguments1, Scenario_RubyProcs1, RubyProcArgConversion1, RubyProcArgConversion2, RubyProcArgConversion3, RubyProcArgConversion4, ProcNew1, ProcNew2, DefineMethod1, DefineMethod2, Scenario_RubyInitializers0, Scenario_RubyInitializers1, Scenario_RubyInitializers2A, Scenario_RubyInitializers2B, Scenario_RubyInitializers3, Scenario_RubyInitializers4A, Scenario_RubyInitializers4B, Scenario_RubyInitializers4C, Scenario_RubyInitializers5, RubyInitializersCaching1, RubyInitializersCaching2, RubyAllocators1, Scenario_RubyForLoop1, // TODO: Python interop: Scenario_RubyForLoop2, Scenario_RubyWhileLoop1, Scenario_RubyWhileLoop2, Scenario_RubyWhileLoop3, Scenario_RubyWhileLoop4, Scenario_RubyWhileLoop5, Scenario_RubyWhileLoop6, Scenario_RubyUntilLoop1, Scenario_WhileLoopCondition1, PostTestWhile1, PostTestUntil1, WhileModifier1, UntilModifier1, WhileModifier2, UntilModifier2, RangeConditionInclusive1, RangeConditionExclusive1, RangeCondition1, RangeCondition2, Scenario_RubyClosures1, Scenario_RubyParams1, Scenario_RubyParams2, Scenario_RubyReturn1, Scenario_RubyArrays1, Scenario_RubyArrays2, Scenario_RubyArrays3, Scenario_RubyArrays4, Scenario_RubyArrays5, Scenario_RubyArrays6, Scenario_RubyHashes1A, Scenario_RubyHashes1B, Scenario_RubyHashes1C, Scenario_RubyHashes2, Scenario_RubyHashes3, Scenario_RubyHashes4, Scenario_RubyArgSplatting1, Scenario_RubyArgSplatting2, Scenario_RubyArgSplatting3, Scenario_RubyBoolExpressions1, Scenario_RubyBoolExpressions2, Scenario_RubyBoolExpressions3, Scenario_RubyBoolExpressions4, Scenario_RubyBoolExpressionsWithReturn1, Scenario_RubyBoolExpressionsWithReturn2, TernaryConditionalWithJumpStatements1, TernaryConditionalWithJumpStatements2, Scenario_RubyBoolAssignment, Scenario_RubyIfExpression1, Scenario_RubyIfExpression2, Scenario_RubyUnlessExpression1, Scenario_RubyConditionalExpression1, ConditionalStatement1, ConditionalStatement2, Scenario_UninitializedVars1, Scenario_UninitializedVars2, InstanceVariables1, InstanceVariables2, RubyHosting1, RubyHosting2, RubyHosting3, RubyHosting4, Scenario_RubyConsole1, // TODO: interop, hosting: Scenario_RubyConsole2, Scenario_RubyConsole3, Scenario_RubyConsole4, ObjectOperations1, ObjectOperations2, // TODO (python needs to run this suite): PythonInterop1, // TODO (python needs to run this suite): PythonInterop2, CustomTypeDescriptor1, CustomTypeDescriptor2, Loader_Assemblies1, Require1, RequireInterop1, Load1, LibraryLoader1, ClrFields1, ClrTypes1, ClrGenerics1, ClrMethods1, ClrMethodsVisibility1, ClrInterfaces1, ClrRequireAssembly1, ClrInclude1, ClrNew1, ClrAlias1, // TODO: ClrEnums1, ClrDelegates1, ClrDelegates2, ClrEvents1, ClrOverride1, ClrConstructor1, // TODO: ClrConstructor2, Scenario_RubyEngine1, Scenario_RubyInteractive, Scenario_RubyReturnValues1, Scenario_RubyReturnValues2, Scenario_RubyReturnValues3, Scenario_RubyReturnValues4, Scenario_RubyReturnValues5, Scenario_RubyReturnValues6, Scenario_RubyExceptions1, Scenario_RubyExceptions1A, Scenario_RubyExceptions2A, Scenario_RubyExceptions2B, Scenario_RubyExceptions2C, Scenario_RubyExceptions2D, Scenario_RubyExceptions3, Scenario_RubyExceptions4, Scenario_RubyExceptions5, Scenario_RubyExceptions6, Scenario_RubyExceptions7, Scenario_RubyExceptions8, Scenario_RubyExceptions9, Scenario_RubyExceptions10, Scenario_RubyExceptions11, Scenario_RubyExceptions12, Scenario_RubyExceptions12A, Scenario_RubyExceptions13, Scenario_RubyExceptions14, Scenario_RubyExceptions15, Scenario_RubyExceptions16, Scenario_RubyExceptions_Globals, Scenario_RubyRescueStatement1, Scenario_RubyRescueExpression1, Scenario_RubyRescueExpression2, ExceptionArg1, ExceptionArg2, RescueSplat1, RescueSplat2, RescueSplat3, ClassVariables1, UnqualifiedConstants2, AliasMethodLookup1, UndefMethodLookup, MethodAdded1, MethodLookup1, VisibilityCaching1, ModuleFunctionVisibility1, Scenario_Singletons1, Scenario_Singletons2, Scenario_Singletons3, Scenario_Singletons4, Scenario_Singletons5, SingletonCaching1, Scenario_ClassVariables_Singletons, AllowedSingletons1, Super1, SuperParameterless1, SuperParameterless2, SuperParameterless3, Super2, SuperInDefineMethod1, SuperInDefineMethod2, // TODO: SuperInDefineMethod3, SuperInTopLevelCode1, SuperInAliasedDefinedMethod1, Scenario_RubyDefinedOperator_Globals1, Scenario_RubyDefinedOperator_Globals2, Scenario_RubyDefinedOperator_Methods1, Scenario_RubyDefinedOperator_Methods2, Scenario_RubyDefinedOperator_Constants1, Scenario_RubyDefinedOperator_Constants2, Scenario_RubyDefinedOperator_Expressions1, Scenario_RubyDefinedOperator_InstanceVariables1, Scenario_RubyDefinedOperator_ClassVariables1, Scenario_RubyDefinedOperator_ClassVariables2, Scenario_RubyDefinedOperator_Yield1, Scenario_RubyDefinedOperator_Locals1, Scenario_ModuleOps_Methods, Scenario_MainSingleton, Scenario_RubyThreads1, Scenario_YieldCodeGen, Methods, MethodAliasExpression, ClassDuplication1, ClassDuplication2, ClassDuplication3, ClassDuplication4, ClassDuplication5, StructDup1, ClassDuplication6, Clone1, Dup1, MetaModules1, MetaModulesDuplication1, // eval, binding: Eval1, Eval2, Eval3, EvalReturn1, EvalReturn2, LocalNames1, LocalNames2, LocalNames3, LocalNames4, LiftedParameters1, Binding1, TopLevelBinding_RubyProgram, EvalWithProcBinding1, ModuleEvalProc1, ModuleEvalProc2, ModuleEvalProc3, InstanceEvalProc1, // TODO: InstanceEvalProc2, ModuleInstanceEvalProc3, ModuleClassNew1, ModuleClassNew2, ModuleEvalString1, InstanceEvalString1, ModuleEvalString2, InstanceEvalString2, ModuleInstanceEvalString3, AliasInModuleEval1, MethodAliasInModuleEval1, SuperInModuleEval1, SuperEval1, // TODO: SuperParameterlessEval1, // TODO: SuperParameterlessEval2, SuperInDefineMethodEval1, Backtrace1, Backtrace2, Backtrace3, }; }
public Tests(Driver/*!*/ driver) { _driver = driver; _methods = new Action[] { Scenario_Startup, // must be the first test Scenario_ParserLogging, Scenario_RubyTokenizer1, Identifiers1, Identifiers2, Scenario_ParseBigInts1, ParseIntegers1, Scenario_ParseNumbers1, Scenario_ParseInstanceClassVariables1, ParseGlobalVariables1, ParseEscapes1, ParseEolns1, Scenario_ParseRegex1, Scenario_RubyCategorizer1, Scenario_RubyNameMangling1, Scenario_RubyNameMangling2, OverloadResolution_Block, Scenario_RubySimpleCall1, Scenario_RubySimpleCall2, Scenario_RubySimpleCall3, Scenario_RubySimpleCall4, Scenario_RubySimpleCall5, NumericLiterals1, StringLiterals1, Escapes1, UnicodeEscapes1, UnicodeEscapes2, Heredoc1, Symbols1, UnicodeIdentifiers1, Encoding1, Encoding2, Encoding3, Encoding4, Encoding5, Encoding_Host1, Encoding_Host2, AstLocations1, Scenario_Globals1, Scenario_RubyMethodMissing1, Scenario_RubyMethodMissing2, Scenario_RubySingletonConstants1, Scenario_RubyMath1, StringsPlus, Strings0, Strings1, Strings2, Strings3, Strings4, Strings5, Strings6, Strings7, Strings8, ToSConversion1, ToSConversion2, Regex1, Regex2, RegexTransform1, RegexTransform2, RegexEscape1, RegexCondition1, RegexCondition2, Scenario_RubyScopeParsing, Scenario_RubyScopes1, Scenario_RubyScopes2A, Scenario_RubyScopes2B, Scenario_RubyScopes3, Scenario_RubyScopes4, Scenario_RubyScopes5, Scenario_RubyScopes6, Send1, AttributeAccessors1, AttributeAccessors2, Scenario_RubyDeclarations1, Scenario_RubyDeclarations1A, Scenario_RubyDeclarations1B, Scenario_RubyDeclarations1C, Scenario_RubyDeclarations2, Scenario_RubyDeclarations3, Scenario_RubyDeclarations4, Scenario_RubyInclusions1, Scenario_RubyClassVersions1, Scenario_RubyClassVersions2, InvokeMemberCache1, Scenario_RubyBlockExpressions1, Constants1A, Constants1B, ConstantNames, Constants3, Constants4, UnqualifiedConstants1, LoadAndGlobalConstants, GlobalConstantsInterop, Scenario_ClassVariables1, Scenario_ClassVariables2, Scenario_RubyLocals1, Scenario_MethodAliases1, Scenario_MethodAliases2, Scenario_MethodUndef1, Scenario_MethodUndef2, MethodUndefExpression, Scenario_Assignment1, SetterCallValue, SimpleInplaceAsignmentToIndirectLeftValues1, MemberAssignmentExpression1, MemberAssignmentExpression2, MemberAssignmentExpression3, Scenario_ParallelAssignment1, Scenario_ParallelAssignment2, Scenario_ParallelAssignment4, Scenario_ParallelAssignment5, Scenario_ParallelAssignment6, Scenario_ParallelAssignment7, Scenario_ParallelAssignment8, Scenario_ParallelAssignment9, Scenario_ParallelAssignment10, BlockEmpty, Scenario_RubyBlocks0, Scenario_RubyBlocks_Params1, Scenario_RubyBlocks_Params2, ProcYieldCaching1, ProcCallCaching1, ProcSelf1, Scenario_RubyBlocks2, Scenario_RubyBlocks3, Scenario_RubyBlocks5, Scenario_RubyBlocks6, Scenario_RubyBlocks7, Scenario_RubyBlocks8, Scenario_RubyBlocks9, Scenario_RubyBlocks10, Scenario_RubyBlocks11, Scenario_RubyBlocks12, Scenario_RubyBlocks13, Scenario_RubyBlocks14, Scenario_RubyBlocks15, Scenario_RubyBlocks16, Scenario_RubyBlocks17, BlockArity1, Scenario_RubyBlockArgs1, Scenario_RubyProcYieldArgs1, Scenario_RubyProcCallArgs1A, Scenario_RubyProcCallArgs1B, Scenario_RubyBlockArgs2, Scenario_RubyProcCallArgs2A, Scenario_RubyProcCallArgs2B, Scenario_RubyProcCallArgs2C, Scenario_RubyProcCallArgs2D, Scenario_RubyBlockArgs3, Scenario_RubyBlockArgs4A, Scenario_RubyBlockArgs4B, Scenario_RubyBlockArgs5, Scenario_RubyBlockArgs6, // TODO: Scenario_RubyBlockArgs7, Scenario_RubyBlockArgs8, Scenario_RubyBlockArgs9, Scenario_RubyBlockArgs10, Proc_RhsAndBlockArguments1, Scenario_RubyProcs1, RubyProcArgConversion1, RubyProcArgConversion2, RubyProcArgConversion3, RubyProcArgConversion4, ProcNew1, ProcNew2, DefineMethod1, DefineMethod2, Scenario_RubyInitializers0, Scenario_RubyInitializers1, Scenario_RubyInitializers2A, Scenario_RubyInitializers2B, Scenario_RubyInitializers3, Scenario_RubyInitializers4A, Scenario_RubyInitializers4B, Scenario_RubyInitializers4C, Scenario_RubyInitializers5, RubyInitializersCaching1, RubyInitializersCaching2, RubyAllocators1, Scenario_RubyForLoop1, // TODO: Python interop: Scenario_RubyForLoop2, Scenario_RubyWhileLoop1, Scenario_RubyWhileLoop2, Scenario_RubyWhileLoop3, Scenario_RubyWhileLoop4, Scenario_RubyWhileLoop5, Scenario_Rub
public TestRuntime(Driver/*!*/ driver, TestCase/*!*/ testCase) { _driver = driver; _testName = testCase.Name; if (testCase.Options.NoRuntime) { return; } #if !WIN8 if (_driver.SaveToAssemblies) { Environment.SetEnvironmentVariable("DLR_AssembliesFileName", _testName); } #endif _engine = _driver.CreateRubyEngine(testCase.Options.PrivateBinding, testCase.Options); _runtime = _engine.Runtime; _context = (RubyContext)HostingHelpers.GetLanguageContext(_engine); }
public static int Run(List<string>/*!*/ args, string baseDirectory) { #if !WIN8 if (Thread.CurrentThread.CurrentCulture.ToString() != "en-US") { WriteOutput("Current culture: {0}", Thread.CurrentThread.CurrentCulture); } #endif if (!ParseArguments(args)) { return -3; } #if !WIN8 if (_runTokenizerDriver) { TokenizerTestDriver tokenizerDriver = new TokenizerTestDriver((RubyContext)HostingHelpers.GetLanguageContext(Ruby.CreateEngine())); if (!tokenizerDriver.ParseArgs(args)) { return -3; } return tokenizerDriver.RunTests(); } #endif InitializeDomain(); Driver driver = new Driver(baseDirectory); if (Manual.TestCode.Trim().Length == 0) { return driver.RunUnitTests(args); } #if !WIN8 driver.RunManualTest(); #endif // for case the test is forgotten, this would fail the test suite: return -2; }