// File RegressionTestLupine.cm edited by ADB on November 12, 1982 10:54 am. // Load latest Lupine if necessary. // Run Lupine // The following translations should cause these respective errors: // Abort[NoSuchFile]; // Abort[BadBcdFileVersion]; // Abort[BadBcdFileFormat]; // Abort[NotInterfaceModule]. Lupine ↑ TranslateInterface[UnlikelyFileName.unlikelyFileName] ↑ TranslateInterface[RegressionTestLupine.cm] ↑ TranslateInterface[Lupine.bcd] ↑ TranslateInterface[LupineManagerImpl] ↑ // Try various switch settings (which aren't checked further): Lupine ↑ ↑ TargetLanguage[BogusValue] ↑ TargetLanguage[Cedar] ↑ TargetLanguage[Mesa] ↑ ↑ DefaultParameterPassing[BogusValue] ↑ DefaultParameterPassing[Var] ↑ DefaultParameterPassing[VALUE] ↑ DefaultParameterPassing[Result] ↑ DefaultParameterPassing[handle] ↑ ↑ InterMdsCalls[BogusValue] ↑ InterMdsCalls[TRUE] ↑ InterMdsCalls[FALSE] ↑ ↑ FreeServerArguments[BogusValue] ↑ FreeServerArguments[TRUE] ↑ FreeServerArguments[FALSE] ↑ ↑ InlineDispatcherStubs[BogusValue] ↑ InlineDispatcherStubs[TRUE] ↑ InlineDispatcherStubs[FALSE] ↑ ↑ DynamicHeapNEWs[BogusValue, BogusValue] ↑ DynamicHeapNEWs[-100, -100] ↑ DynamicHeapNEWs[0, 0] ↑ DynamicHeapNEWs[10000, 10000] ↑ DynamicHeapNEWs[40, 40] ↑ ↑ LineLength[BogusValue] ↑ LineLength[-100] ↑ LineLength[0] ↑ LineLength[10000] ↑ LineLength[40] ↑ // Prepare to test some real interfaces: Compile Lupine*Test.mesa Type Compiler.log Delete ↑ Lupine*Test*RpcControl.mesa ↑ Lupine*Test*RpcClientImpl.mesa ↑ Lupine*Test*RpcBinderImpl.mesa ↑ Lupine*Test*RpcServerImpl.mesa // Translate a translation error-testing interface. // The translation results must checked manually: // LupineErrorTest causes all known translation-time errors. Compare // Lupine's typescript with the comments in LupineErrorTest.mesa. Lupine ↑ ↑ InterMdsCalls[FALSE] ↑ ↑ DefaultParameterPassing[Value] ↑ TranslateInterface[LupineErrorTest] ↑ DefaultParameterPassing[Var] ↑ TranslateInterface[LupineErrorTest] ↑ DefaultParameterPassing[Result] ↑ TranslateInterface[LupineErrorTest] ↑ DefaultParameterPassing[Handle] ↑ TranslateInterface[LupineErrorTest] ↑ ↑ InterMdsCalls[TRUE] ↑ DefaultParameterPassing[Value] ↑ ↑ TranslateInterface[LupineErrorTest] ↑ // Translate various test interfaces with Mesa as target language. // The translation results must checked manually: // LupineErrorTest causes all known translation-time errors. Compare // Lupine's typescript with the comments in LupineErrorTest.mesa. // The stubs should compile but raise ERRORs if executed. // LupinePrintTest exercises Lupine's type printing routines. The // resulting stub modules should compile with "incorrect type" errors // because of record mismatches, but have no (or few) other problems. // LupineTimeTest is included here as an extra test. It is // actually tested by TimeTestLupine.cm. // LupineMarshalTest is included here as an extra test. It is // actually tested by MarshalTestLupine.cm. // LupineTypeTest exercises Lupine's ability to marshal all the types // it claims to handle. The stubs should compile correctly. Lupine ↑ TargetLanguage[Mesa] ↑ ↑ TranslateInterface[LupineErrorTest] ↑ TranslateInterface[LupineTimeTest] ↑ ↑ InterMdsCalls[TRUE] ↑ TranslateInterface[LupinePrintTest] ↑ InterMdsCalls[FALSE] ↑ ↑ InlineDispatcherStubs[FALSE] ↑ ↑ TranslateInterface[LupineMarshalTest] ↑ TranslateInterface[LupineTypeTest] ↑ // Check the results. ErrorTest and PrintTest should clearly miscompile, // and TypeTest and MarshalTest will have errors because they use // Cedar features not recognized with Mesa as target. Compile ↑ Lupine*Test*RpcControl.mesa ↑ Lupine*Test*RpcClientImpl.mesa ↑ Lupine*Test*RpcBinderImpl.mesa ↑ Lupine*Test*RpcServerImpl.mesa Type Compiler.log Delete ↑ Lupine*Test*RpcControl.mesa ↑ Lupine*Test*RpcClientImpl.mesa ↑ Lupine*Test*RpcBinderImpl.mesa ↑ Lupine*Test*RpcServerImpl.mesa // Translate a couple of the test interfaces with Cedar as target language. // This test proceeds similar to the one above, but all should compile. Lupine ↑ TargetLanguage[Cedar] ↑ ↑ TranslateInterface[LupineTimeTest] ↑ ↑ InlineDispatcherStubs[FALSE] ↑ ↑ TranslateInterface[LupineMarshalTest] ↑ TranslateInterface[LupineTypeTest] ↑ // Check the results (all should compile): Compile ↑ Lupine*Test*RpcControl.mesa ↑ Lupine*Test*RpcClientImpl.mesa ↑ Lupine*Test*RpcBinderImpl.mesa ↑ Lupine*Test*RpcServerImpl.mesa Type Compiler.log Delete ↑ Lupine*Test*RpcControl.mesa ↑ Lupine*Test*RpcClientImpl.mesa ↑ Lupine*Test*RpcBinderImpl.mesa ↑ Lupine*Test*RpcServerImpl.mesa // Translate various test interfaces for interMDS calls. // This test proceeds similar to the one above. All should compile. Lupine ↑ InterMdsCalls[TRUE] ↑ ↑ TranslateInterface[LupineTimeTest] ↑ TranslateInterface[LupineMarshalTest] ↑ TranslateInterface[LupineTypeTest] ↑ // Check the results: Compile ↑ Lupine*Test*RpcControl.mesa ↑ Lupine*Test*RpcClientImpl.mesa ↑ Lupine*Test*RpcBinderImpl.mesa ↑ Lupine*Test*RpcServerImpl.mesa Type Compiler.log Delete ↑ Lupine*Test*RpcControl.mesa ↑ Lupine*Test*RpcClientImpl.mesa ↑ Lupine*Test*RpcBinderImpl.mesa ↑ Lupine*Test*RpcServerImpl.mesa