From 19a5557ae4eda941909586b1b030a1004dd6e093 Mon Sep 17 00:00:00 2001 From: Brian Wildt Date: Thu, 5 Jan 2023 08:50:11 +0100 Subject: [PATCH 001/180] Fixed comments in section mocks --- .../cobolcheck/services/StringHelper.java | 5 ++++- .../cobolcheck/MockingTest.java | 16 +++++++++------- 2 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/services/StringHelper.java b/src/main/java/org/openmainframeproject/cobolcheck/services/StringHelper.java index 906ac4c2..f7218093 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/services/StringHelper.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/services/StringHelper.java @@ -217,7 +217,10 @@ public static boolean isStringContinuationLine(String line) { } public static String moveToAreaB(String line){ - return " " + line.trim(); + if (line.trim().startsWith("*")) + return " " + line.trim(); + else + return " " + line.trim(); } public static List moveToAreaB(List lines){ diff --git a/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java b/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java index 525abd66..817d51ae 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java @@ -192,18 +192,20 @@ public void call_mock_gets_call_type() throws IOException { @Test public void mock_gets_correct_lines() throws IOException { - String str1 = " TESTSUITE \"Name of test suite\""; - String str2 = " TESTCASE \"Name of test case\""; - String str3 = " MOCK SECTION 000-START"; - String str4 = " MOVE \"something\" TO this"; - String str5 = " MOVE \"something else\" TO other"; - String str6 = " END-MOCK"; + String str1 = " TESTSUITE \"Name of test suite\""; + String str2 = " TESTCASE \"Name of test case\""; + String str3 = " MOCK SECTION 000-START"; + String str4 = " * MOVE \"something\" TO this"; + String str5 = " MOVE \"something\" TO this"; + String str6 = " MOVE \"something else\" TO other"; + String str7 = " END-MOCK"; List expected = new ArrayList<>(); + expected.add(" * MOVE \"something\" TO this"); expected.add(" MOVE \"something\" TO this"); expected.add(" MOVE \"something else\" TO other"); - Mockito.when(mockedReader.readLine()).thenReturn(str1, str2, str3, str4, str5, str6, null); + Mockito.when(mockedReader.readLine()).thenReturn(str1, str2, str3, str4, str5, str6, str7, null); testSuiteParser.getParsedTestSuiteLines(mockedReader, numericFields); assertEquals(expected, mockRepository.getMocks().get(0).getLines()); From 8b9040d0e16c3090ec4e7d47b57d64aa23d45ddf Mon Sep 17 00:00:00 2001 From: dakaa16 Date: Thu, 5 Jan 2023 13:30:44 +0100 Subject: [PATCH 002/180] - Added 'NUMERIC' as a valid token in an EXPECT-statement - Logs a warning when a NUMERIC-token is used on alphanumeric or boolean EXPECT - Added tests Signed-off-by: dakaa16 --- .../features/testSuiteParser/Keywords.java | 26 ++++++++++++++ .../testSuiteParser/TestSuiteErrorLog.java | 9 +++++ .../testSuiteParser/TestSuiteParser.java | 23 ++++++++----- .../cobolcheck/services/Constants.java | 3 +- .../cobolcheck/KeywordsTest.java | 5 +++ .../cobolcheck/TestSuiteErrorLogTest.java | 34 +++++++++++++++++++ 6 files changed, 90 insertions(+), 10 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Keywords.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Keywords.java index a90c5f74..93958d7d 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Keywords.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Keywords.java @@ -139,6 +139,7 @@ public class Keywords { Arrays.asList(), new HashMap>() {{ put(Constants.EXPECT_KEYWORD, Arrays.asList( + Constants.NUMERIC_KEYWORD, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, Constants.BOOLEAN_VALUE, @@ -153,6 +154,7 @@ public class Keywords { Arrays.asList(), new HashMap>() {{ put(Constants.EXPECT_KEYWORD, Arrays.asList( + Constants.NUMERIC_KEYWORD, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, Constants.BOOLEAN_VALUE, @@ -165,12 +167,14 @@ public class Keywords { keywordInfo.put(Constants.EQUAL_SIGN_KEYWORD, new Keyword(Constants.EQUAL_SIGN_KEYWORD, Arrays.asList(Constants.FIELDNAME_KEYWORD, + Constants.NUMERIC_KEYWORD, Constants.COBOL_TOKEN, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, Constants.BOOLEAN_VALUE), new HashMap>() {{ put(Constants.EXPECT_KEYWORD, Arrays.asList( + Constants.NUMERIC_KEYWORD, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, Constants.BOOLEAN_VALUE, @@ -183,12 +187,14 @@ public class Keywords { keywordInfo.put(Constants.GREATER_THAN_SIGN_KEYWORD, new Keyword(Constants.GREATER_THAN_SIGN_KEYWORD, Arrays.asList(Constants.FIELDNAME_KEYWORD, + Constants.NUMERIC_KEYWORD, Constants.COBOL_TOKEN, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, Constants.BOOLEAN_VALUE), new HashMap>() {{ put(Constants.EXPECT_KEYWORD, Arrays.asList( + Constants.NUMERIC_KEYWORD, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, Constants.BOOLEAN_VALUE, @@ -201,12 +207,14 @@ public class Keywords { keywordInfo.put(Constants.GREATER_THAN_EQUAL_TO_SIGN_KEYWORD, new Keyword(Constants.GREATER_THAN_EQUAL_TO_SIGN_KEYWORD, Arrays.asList(Constants.FIELDNAME_KEYWORD, + Constants.NUMERIC_KEYWORD, Constants.COBOL_TOKEN, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, Constants.BOOLEAN_VALUE), new HashMap>() {{ put(Constants.EXPECT_KEYWORD, Arrays.asList( + Constants.NUMERIC_KEYWORD, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, Constants.BOOLEAN_VALUE, @@ -219,12 +227,14 @@ public class Keywords { keywordInfo.put(Constants.LESS_THAN_SIGN_KEYWORD, new Keyword(Constants.LESS_THAN_SIGN_KEYWORD, Arrays.asList(Constants.FIELDNAME_KEYWORD, + Constants.NUMERIC_KEYWORD, Constants.COBOL_TOKEN, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, Constants.BOOLEAN_VALUE), new HashMap>() {{ put(Constants.EXPECT_KEYWORD, Arrays.asList( + Constants.NUMERIC_KEYWORD, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, Constants.BOOLEAN_VALUE, @@ -237,10 +247,26 @@ public class Keywords { keywordInfo.put(Constants.LESS_THAN_EQUAL_TO_SIGN_KEYWORD, new Keyword(Constants.LESS_THAN_EQUAL_TO_SIGN_KEYWORD, Arrays.asList(Constants.FIELDNAME_KEYWORD, + Constants.NUMERIC_KEYWORD, Constants.COBOL_TOKEN, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, Constants.BOOLEAN_VALUE), + new HashMap>() {{ + put(Constants.EXPECT_KEYWORD, Arrays.asList( + Constants.NUMERIC_KEYWORD, + Constants.ALPHANUMERIC_LITERAL_KEYWORD, + Constants.NUMERIC_LITERAL_KEYWORD, + Constants.BOOLEAN_VALUE, + Constants.COBOL_TOKEN) + ); + }}, + KeywordAction.EXPECTED_VALUE)); + + //--------------------------------NUMERIC + keywordInfo.put(Constants.NUMERIC_KEYWORD, + new Keyword(Constants.NUMERIC_KEYWORD, + Arrays.asList(), new HashMap>() {{ put(Constants.EXPECT_KEYWORD, Arrays.asList( Constants.ALPHANUMERIC_LITERAL_KEYWORD, diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteErrorLog.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteErrorLog.java index 6b771043..e5abcab2 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteErrorLog.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteErrorLog.java @@ -148,6 +148,15 @@ public void logUnusedMocks(List mocks){ } } + public void logVariableTypeMismatch(String expectedType, String actualType, String currentFile, int lineNumber, int lineIndex){ + String error = ""; + error += String.format(fileMessage, displayErrorType(ErrorTypes.WARNING), currentFile) + ":" + lineNumber + ":" + lineIndex + ":" + Constants.NEWLINE; + error += String.format(lineIndexMessage, lineNumber, lineIndex) + Constants.NEWLINE; + error += "Expected compare to be of type <" + expectedType +">, but the variable was classified as the type <" + actualType + ">" + Constants.NEWLINE; + error += "The test was carried out with the compare type <" + actualType + ">" + Constants.NEWLINE + Constants.NEWLINE; + outputError(error); + } + private void outputError(String error) { errorLogMessages += error; System.out.println(error); diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index 3547f04f..3efae3bb 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -8,10 +8,8 @@ import java.io.BufferedReader; import java.io.IOException; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; import java.util.Locale; -import java.util.regex.Pattern; /** * Parses the concatenated test suite and writes Cobol test code to the output @@ -76,6 +74,7 @@ public class TestSuiteParser { private int testSuiteNumber = 0; private String currentTestCaseName = Constants.EMPTY_STRING; private int testCaseNumber = 0; + private boolean expectNumericCompare; // Lines inserted into the test program private static final String COBOL_PERFORM_INITIALIZE = " PERFORM %sINITIALIZE"; @@ -307,13 +306,6 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, case Constants.COBOL_TOKEN: case Constants.FIELDNAME_KEYWORD: - // TODO:remove when implementing EXPECT NUMERIC - if (testSuiteToken.equals("NUMERIC")) { - Log.debug( - "==WARNING== is not implemented and could cause unintended behaviour ==WARNING=="); - ignoreCobolStatementAndFieldNameKeyAction = true; - break; - } if (expectQualifiedName) { fieldNameForExpect += testSuiteToken; expectQualifiedName = false; @@ -581,6 +573,10 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, toBeInProgress = true; break; + case Constants.NUMERIC_KEYWORD: + expectNumericCompare = true; + break; + case Constants.QUALIFIED_FIELD_NAME: if (cobolTokenIsFieldName){ fieldNameForExpect += Constants.SPACE + testSuiteToken + Constants.SPACE; @@ -889,6 +885,10 @@ void addIncrementTestCaseCountLine(List parsedTestSuiteLines) { void addTestCodeForAssertion(List parsedTestSuiteLines, NumericFields numericFields) { addSetNormalOrReverseCompare(parsedTestSuiteLines); if (boolean88LevelCompare) { + if (expectNumericCompare){ + testSuiteErrorLog.logVariableTypeMismatch(Constants.NUMERIC_KEYWORD, "BOOLEAN88", + currentTestSuiteRealFile, fileLineNumber, fileLineIndexNumber); + } addTestCodeFor88LevelEqualityCheck(parsedTestSuiteLines); } else { if (fieldIsANumericDataType(fieldNameForExpect)) { @@ -899,6 +899,10 @@ void addTestCodeForAssertion(List parsedTestSuiteLines, NumericFields nu parsedTestSuiteLines.add(String.format( COBOL_MOVE_EXPECTED_NUMERIC_LITERAL, testCodePrefix, expectedValueToCompare)); } else { + if (expectNumericCompare){ + testSuiteErrorLog.logVariableTypeMismatch(Constants.NUMERIC_KEYWORD, "ALPHANUMERIC", + currentTestSuiteRealFile, fileLineNumber, fileLineIndexNumber); + } parsedTestSuiteLines.add(String.format( COBOL_SET_ALPHANUMERIC_COMPARE, testCodePrefix, Constants.TRUE)); parsedTestSuiteLines.add(String.format( @@ -919,6 +923,7 @@ void addTestCodeForAssertion(List parsedTestSuiteLines, NumericFields nu greaterThanComparison = false; lessThanComparison = false; } + expectNumericCompare = false; } void addTestCodeFor88LevelEqualityCheck(List parsedTestSuiteLines) { diff --git a/src/main/java/org/openmainframeproject/cobolcheck/services/Constants.java b/src/main/java/org/openmainframeproject/cobolcheck/services/Constants.java index c15844d6..424fc4d6 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/services/Constants.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/services/Constants.java @@ -83,6 +83,7 @@ private Constants() { public static final String END_BEFORE_TOKEN = "END-BEFORE"; public static final String AFTER_EACH_TOKEN = "AFTER EACH"; public static final String END_AFTER_TOKEN = "END-AFTER"; + public static final String NUMERIC_KEYWORD = "NUMERIC"; public static final String IN_KEYWORD = "IN"; public static final String OF_KEYWORD = "OF"; @@ -90,7 +91,7 @@ private Constants() { public static final String BEFORE_EACH_TOKEN_HYPHEN = "BEFORE-EACH"; public static final String AFTER_EACH_TOKEN_HYPHEN = "AFTER-EACH"; public static final String PARA_TOKEN = "PARA"; - public static final List IGNORED_TOKENS = Arrays.asList("END-CALL", "NUMERIC"); + public static final List IGNORED_TOKENS = Arrays.asList("END-CALL"); // Configuration key values public static final String CONCATENATED_TEST_SUITES_CONFIG_KEY = "concatenated.test.suites"; diff --git a/src/test/java/org/openmainframeproject/cobolcheck/KeywordsTest.java b/src/test/java/org/openmainframeproject/cobolcheck/KeywordsTest.java index 9b184dcf..86307dae 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/KeywordsTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/KeywordsTest.java @@ -66,6 +66,7 @@ private static Stream KeywordProvider() { KeywordAction.TESTSUITE_NAME), Arguments.of(Constants.EQUAL_SIGN_KEYWORD, Constants.EQUAL_SIGN_KEYWORD, Arrays.asList(Constants.FIELDNAME_KEYWORD, + Constants.NUMERIC_KEYWORD, Constants.COBOL_TOKEN, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, @@ -76,6 +77,7 @@ private static Stream KeywordProvider() { KeywordAction.REVERSE_LOGIC), Arguments.of(Constants.GREATER_THAN_SIGN_KEYWORD, Constants.GREATER_THAN_SIGN_KEYWORD, Arrays.asList(Constants.FIELDNAME_KEYWORD, + Constants.NUMERIC_KEYWORD, Constants.COBOL_TOKEN, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, @@ -83,6 +85,7 @@ private static Stream KeywordProvider() { KeywordAction.EXPECTED_VALUE), Arguments.of(Constants.LESS_THAN_SIGN_KEYWORD, Constants.LESS_THAN_SIGN_KEYWORD, Arrays.asList(Constants.FIELDNAME_KEYWORD, + Constants.NUMERIC_KEYWORD, Constants.COBOL_TOKEN, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, @@ -90,6 +93,7 @@ private static Stream KeywordProvider() { KeywordAction.EXPECTED_VALUE), Arguments.of(Constants.GREATER_THAN_EQUAL_TO_SIGN_KEYWORD, Constants.GREATER_THAN_EQUAL_TO_SIGN_KEYWORD, Arrays.asList(Constants.FIELDNAME_KEYWORD, + Constants.NUMERIC_KEYWORD, Constants.COBOL_TOKEN, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, @@ -97,6 +101,7 @@ private static Stream KeywordProvider() { KeywordAction.EXPECTED_VALUE), Arguments.of(Constants.LESS_THAN_EQUAL_TO_SIGN_KEYWORD, Constants.LESS_THAN_EQUAL_TO_SIGN_KEYWORD, Arrays.asList(Constants.FIELDNAME_KEYWORD, + Constants.NUMERIC_KEYWORD, Constants.COBOL_TOKEN, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, diff --git a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java index 88c860a2..abc96f35 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java @@ -11,6 +11,7 @@ import org.openmainframeproject.cobolcheck.features.writer.CobolWriter; import org.openmainframeproject.cobolcheck.services.Config; import org.openmainframeproject.cobolcheck.services.Constants; +import org.openmainframeproject.cobolcheck.services.cobolLogic.DataType; import org.openmainframeproject.cobolcheck.services.cobolLogic.NumericFields; import java.io.BufferedReader; @@ -391,4 +392,37 @@ public void it_catches_unexpected_keyword_after_verify() { assertEquals(expectedResult, actualResult); } + @Test + public void it_catches_type_mismatch_of_numeric_and_alphanumeric_for_explicit_numeric_in_unit_test() { + testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); + testSuite.append(" TESTCASE \"Name of test case\""+ Constants.NEWLINE); + testSuite.append(" EXPECT WS-ALPHA-VALUE TO BE NUMERIC \"Hello\""+ Constants.NEWLINE); + + String expectedResult = ""; + expectedResult += "WARNING in file: null:3:44:" + Constants.NEWLINE; + expectedResult += "Unexpected token on line 3, index 44:" + Constants.NEWLINE; + expectedResult += "Expected compare to be of type , but the variable was classified as the type " + Constants.NEWLINE; + expectedResult += "The test was carried out with the compare type " + Constants.NEWLINE + Constants.NEWLINE; + + testSuiteParser.getParsedTestSuiteLines(new BufferedReader(new StringReader(testSuite.toString())), numericFields); + + String actualResult = testSuiteErrorLog.getErrorMessages(); + assertEquals(expectedResult, actualResult); + } + + @Test + public void explicit_numeric_gives_no_warning_when_variable_is_numeric() { + testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); + testSuite.append(" TESTCASE \"Name of test case\""+ Constants.NEWLINE); + testSuite.append(" EXPECT WS-NUMERIC-VALUE TO BE NUMERIC 1"+ Constants.NEWLINE); + + String expectedResult = ""; + + numericFields.setDataTypeOf("WS-NUMERIC-VALUE", DataType.PACKED_DECIMAL); + + testSuiteParser.getParsedTestSuiteLines(new BufferedReader(new StringReader(testSuite.toString())), numericFields); + + String actualResult = testSuiteErrorLog.getErrorMessages(); + assertEquals(expectedResult, actualResult); + } } From 1d961744b63cae9d998b6ab88514edcf23393fd2 Mon Sep 17 00:00:00 2001 From: dakaa16 Date: Thu, 5 Jan 2023 13:37:58 +0100 Subject: [PATCH 003/180] - Changed Ubuntu version for GitHub Action verification, as prior version has become deprecated Signed-off-by: dakaa16 --- .github/workflows/VerifyAction.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/VerifyAction.yml b/.github/workflows/VerifyAction.yml index 2af58a79..c5adb60f 100644 --- a/.github/workflows/VerifyAction.yml +++ b/.github/workflows/VerifyAction.yml @@ -13,7 +13,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [ubuntu-18.04, windows-latest, macos-latest] + os: [ubuntu-22.04, windows-latest, macos-latest] java-version: [8, 11] steps: From 9fc4c5f6482d147c570183b80a4e483dfeed1783 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20M=C3=B8nster?= Date: Thu, 12 Jan 2023 13:02:02 +0100 Subject: [PATCH 004/180] My changes --- CHANGELOG.md | 5 +++ README.md | 2 +- config.properties | 5 ++- scripts/windows_gnucobol_run_tests.cmd | 3 +- .../interpreter/InterpreterController.java | 32 ++++++++++++-- .../launcher/Formatter/Formats/Formatter.java | 3 +- .../features/launcher/LaunchHelper.java | 32 ++++++++++++++ .../launcher/LinuxProcessLauncher.java | 8 +++- .../launcher/WindowsProcessLauncher.java | 13 +++--- .../testSuiteParser/TestSuiteParser.java | 19 ++++++-- .../cobolcheck/services/Config.java | 25 +++++++++-- .../services/cobolLogic/Interpreter.java | 43 +++++++++++++++++-- .../services/cobolLogic/NumericFields.java | 37 ++++++++++++++++ .../TestSuiteParserParsingTest.java | 2 +- vs code extension/CHANGELOG.md | 9 ++++ .../Cobol-check/config.properties | 14 ++++++ .../Cobol-check/default.properties | 12 ++++++ .../scripts/windows_gnucobol_run_tests.cmd | 2 +- vs code extension/client/src/extension.ts | 26 +++++------ .../src/services/CobolCheckConfiguration.ts | 3 +- vs code extension/package.json | 2 +- 21 files changed, 252 insertions(+), 45 deletions(-) create mode 100644 src/main/java/org/openmainframeproject/cobolcheck/features/launcher/LaunchHelper.java diff --git a/CHANGELOG.md b/CHANGELOG.md index ccfd34f7..1979c311 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,11 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Mock SQL tables - Mock batch file I/O +## \[0.2.5\] 2022-12-21 +### Implemented +- Compiler options for COBOL Check's run of GnuCOBOL can be set in the config-file +- Minor improvements to error handling + ## \[0.2.4\] 2022-11-02 ### Implemented - EXPECT accepts COBOL keywords again as the last keyword diff --git a/README.md b/README.md index 5a2dbd9c..a08d6ffe 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ As of March 2022 we could use help with: ## Downloads -Version 0.2.4 pre-release is available! +Version 0.2.5 pre-release is available! [//]: # (- Find the download on the project home page on the [Neo Pragma site](https://neopragma.com/projects/cobol-check/).) - Find distributions here: [Cobol Check Ditributions](https://github.com/openmainframeproject/cobol-check/blob/main/build/distributions). diff --git a/config.properties b/config.properties index 4d2496fa..82749061 100644 --- a/config.properties +++ b/config.properties @@ -169,8 +169,11 @@ concatenated.test.suites = ./ALLTESTS # and are located in the "GnuCOBOL-installationfolder/config"-folder. # If you need any specific dialect file or other GnuCOBOL-specific compile options, you can add them here. # If not specified, the default will be the normal GnuCOBOL compile setup. +# Separate options with a comma. Set the value to 'null' for default compile options +# Example: +# gnucobol.compile.options = -std=ibm,-fsingle-quote #--------------------------------------------------------------------------------------------------------------------- -gnucobol.compile.options = +gnucobol.compile.options = null #--------------------------------------------------------------------------------------------------------------------- # Shell scripts and JCL files for executing your test suites. diff --git a/scripts/windows_gnucobol_run_tests.cmd b/scripts/windows_gnucobol_run_tests.cmd index b5ffecc4..affff77e 100644 --- a/scripts/windows_gnucobol_run_tests.cmd +++ b/scripts/windows_gnucobol_run_tests.cmd @@ -4,5 +4,4 @@ rem rem Assumptions: rem rem GnuCOBOL 3.+ is installed and on the path. Its executable or alias or symlink is named "cobc". - -cobc -x %1 %2 && %~dpn1 \ No newline at end of file +cobc -x %* && %~dpn1 \ No newline at end of file diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java index f281c617..2bdfc73e 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java @@ -6,11 +6,14 @@ import org.openmainframeproject.cobolcheck.services.Messages; import org.openmainframeproject.cobolcheck.services.Constants; import org.openmainframeproject.cobolcheck.services.cobolLogic.*; +import org.openmainframeproject.cobolcheck.services.log.Log; import java.io.BufferedReader; import java.io.IOException; import java.util.*; +import static org.openmainframeproject.cobolcheck.services.cobolLogic.Interpreter.updateCurrentDataStructure; + public class InterpreterController { private CobolReader reader; private LineRepository lineRepository; @@ -21,6 +24,7 @@ public class InterpreterController { private String possibleMockType; private List possibleMockArgs; private boolean insideSectionOrParagraphMockBody; + private TreeMap currentDataStructure; public InterpreterController(BufferedReader sourceReader) { if (sourceReader == null) { @@ -31,6 +35,7 @@ public InterpreterController(BufferedReader sourceReader) { lineRepository = new LineRepository(); numericFields = new NumericFields(); tokenExtractor = new StringTokenizerExtractor(); + currentDataStructure = new TreeMap<>(); } //Getters for lists of specific source lines @@ -209,6 +214,7 @@ private void updateDependencies(CobolLine line) throws IOException { } if (reader.isFlagSet(Constants.DATA_DIVISION)){ + this.currentDataStructure = updateCurrentDataStructure(line, currentDataStructure); updateNumericFields(line); } @@ -299,20 +305,25 @@ private void tryReadBatchFileIOStatement(){ * references them. There's no way to distinguish numeric fields while reading the PROCEDURE * DIVISION. */ - private void updateNumericFields(CobolLine line){ + private void updateNumericFields(CobolLine line) { if (line.tokensSize() > 1) { + String variableNameWeWantToSave = line.getToken(1); + + if (!this.currentDataStructure.isEmpty()) { + variableNameWeWantToSave = generateVariableNameBasedOnDataStructure(this.currentDataStructure); + } if (line.containsToken(Constants.COMP_3_VALUE)) { - numericFields.setDataTypeOf(line.getToken(1).toUpperCase(Locale.ROOT), DataType.PACKED_DECIMAL); + numericFields.setDataTypeOf(variableNameWeWantToSave.toUpperCase(Locale.ROOT), DataType.PACKED_DECIMAL); } else { if (line.containsToken(Constants.COMP_VALUE)) { - numericFields.setDataTypeOf(line.getToken(1).toUpperCase(Locale.ROOT), DataType.FLOATING_POINT); + numericFields.setDataTypeOf(variableNameWeWantToSave.toUpperCase(Locale.ROOT), DataType.FLOATING_POINT); } else { int ix = 0; for (String token : line.getTokens()) { if (token.equalsIgnoreCase(Constants.PIC_VALUE) || (token.equalsIgnoreCase(Constants.PICTURE_VALUE))) { if (Interpreter.isInNumericFormat(line.getToken(ix + 1))) { - numericFields.setDataTypeOf(line.getToken(1).toUpperCase(Locale.ROOT), DataType.DISPLAY_NUMERIC); + numericFields.setDataTypeOf(variableNameWeWantToSave.toUpperCase(Locale.ROOT), DataType.DISPLAY_NUMERIC); } break; } @@ -323,6 +334,19 @@ private void updateNumericFields(CobolLine line){ } } + /** + * In order for us to verify wether a given field is numeric, we need to generate a key, + * based on how the datastructure for the field is referenced. + * We will generate this key, by using the fieldname and seperate each datastructure value + * with a comma. + * Example: FIELD IN DATA2 OF DATA1 will get the following key: FIELD,DATA2,DATA1 + */ + private String generateVariableNameBasedOnDataStructure(TreeMap dataStructure) { + NavigableMap descendingMap = dataStructure.descendingMap(); + Collection structureValues = descendingMap.values(); + return String.join(",",structureValues); + } + /** * Updates the line repository with the given line, if it might have further use when testing. * Lines ahead of the current one, might be peeked or even read, if the current statement spans diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/Formatter/Formats/Formatter.java b/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/Formatter/Formats/Formatter.java index b3f77cd4..eac8c768 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/Formatter/Formats/Formatter.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/Formatter/Formats/Formatter.java @@ -115,7 +115,8 @@ else if (expectNumberFailed){ dataTransferObject.setNumberOffAllFailures(tokens[0]); } - else{ + else if (line.trim().toUpperCase(Locale.ROOT).startsWith(passKeyword) || + line.trim().toUpperCase(Locale.ROOT).startsWith(failPrefixKeyword + " " + failKeyword)){ try{ setTestCaseValues(line); } catch (PossibleInternalLogicErrorException e){ diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/LaunchHelper.java b/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/LaunchHelper.java new file mode 100644 index 00000000..fbc97b3a --- /dev/null +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/LaunchHelper.java @@ -0,0 +1,32 @@ +package org.openmainframeproject.cobolcheck.features.launcher; + +import java.util.List; + +public class LaunchHelper { + static String[] generateCommandParms(String processKey, String programName, List compileOptions, boolean surroundWithQuotes) { + /* We want to make a String[] that contains the processKey, + * programName and then list every compile option afterwards. + * Hence the compileOptions size+2 + */ + int commandParmsSize = compileOptions.size()+2; + String[] commandParms = new String[commandParmsSize]; + commandParms[0] = processKey; + if (surroundWithQuotes) + commandParms[1] = "\"" + programName + "\""; + else + commandParms[1] = programName; + /* We want to start at index 2 and add the 1st value from + * the compileOptionsList, hence why we subtract 2 from the + * index value in compileOptions.get() - We then get the value + * from index 0 + */ + for (int i = 2; i < commandParmsSize; i++) { + if (surroundWithQuotes) + commandParms[i] = "\"" + compileOptions.get(i-2) + "\""; + else + commandParms[i] = compileOptions.get(i-2); + + } + return commandParms; + } +} diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/LinuxProcessLauncher.java b/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/LinuxProcessLauncher.java index 49157743..814e54b8 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/LinuxProcessLauncher.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/LinuxProcessLauncher.java @@ -9,6 +9,7 @@ import org.openmainframeproject.cobolcheck.services.Constants; import java.io.IOException; +import java.util.List; /** * Launch a script to compile and execute a generated test program (Cobol) @@ -57,8 +58,12 @@ public Process run(String programName) { if (!scriptDirectory.endsWith(Constants.FILE_SEPARATOR)) { scriptDirectory += Constants.FILE_SEPARATOR; } + + List compileOptions = Config.getGnuCOBOLCompileOptions(); + String[] commandParms = LaunchHelper.generateCommandParms(scriptDirectory + scriptName, programName, compileOptions, false); + ProcessBuilder processBuilder = new ProcessBuilder(); - processBuilder.command(scriptDirectory + scriptName, programName); + processBuilder.command(commandParms); Process process = null; StringBuilder processArguments = new StringBuilder(); @@ -79,5 +84,4 @@ public Process run(String programName) { return process; } - } diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/WindowsProcessLauncher.java b/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/WindowsProcessLauncher.java index d5a0b60f..f6399b8c 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/WindowsProcessLauncher.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/WindowsProcessLauncher.java @@ -8,6 +8,7 @@ import org.openmainframeproject.cobolcheck.services.Constants; import java.io.*; +import java.util.List; /** * Launch a script to compile and execute a generated test program (Cobol) @@ -52,9 +53,11 @@ public Process run(String programName) { scriptDirectory += Constants.FILE_SEPARATOR; } - String compileOptions = getGnuCOBOLCompileOptions(); + List compileOptions = Config.getGnuCOBOLCompileOptions(); + String[] commandParms = LaunchHelper.generateCommandParms(scriptDirectory + scriptName, programName, compileOptions, true); + ProcessBuilder processBuilder = new ProcessBuilder(); - processBuilder.command(scriptDirectory + scriptName, "\"" + programName + "\"", "\"" + compileOptions + "\""); + processBuilder.command(commandParms); Process process = null; StringBuilder processArguments = new StringBuilder(); @@ -74,8 +77,4 @@ public Process run(String programName) { } return process; } - - - - -} +} \ No newline at end of file diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index 3547f04f..73f0e6c3 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -1009,10 +1009,21 @@ void addFinalLines(List parsedTestSuiteLines) { * @return true when the field name represents any numeric data type */ boolean fieldIsANumericDataType(String fieldNameForExpect) { - // Remove potential qualifiers and indexing, so we only get the single field - // name. - if (fieldNameForExpect != null && !fieldNameForExpect.isEmpty()) - fieldNameForExpect = fieldNameForExpect.split(" ")[0]; + // We want to isolate the datastructure, so we only parse the fieldname and direct referenced structure. + if (fieldNameForExpect != null && !fieldNameForExpect.isEmpty()) { + String[] splitFieldNameForExpect = fieldNameForExpect.split(" "); + fieldNameForExpect = splitFieldNameForExpect[0]; + for (int i = 1; i < splitFieldNameForExpect.length; i+=2) { + if (splitFieldNameForExpect[i].toUpperCase().equals("OF") || splitFieldNameForExpect[i].equals("IN")) { + String inOrOf = splitFieldNameForExpect[i]; + String dataStructureFieldName = splitFieldNameForExpect[i+1]; + if (dataStructureFieldName.contains("(")) + fieldNameForExpect += " " + inOrOf + " " + dataStructureFieldName.substring(0, dataStructureFieldName.indexOf("(")); + else + fieldNameForExpect += " " + splitFieldNameForExpect[i] + " " + splitFieldNameForExpect[i+1]; + } + } + } return numericFields.dataTypeOf(fieldNameForExpect) == DataType.PACKED_DECIMAL || (numericFields.dataTypeOf(fieldNameForExpect) == DataType.FLOATING_POINT) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/services/Config.java b/src/main/java/org/openmainframeproject/cobolcheck/services/Config.java index e670f7dc..d32829ea 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/services/Config.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/services/Config.java @@ -62,6 +62,7 @@ public class Config { public static final String COBOLCHECK_SCRIPT_DIRECTORY_CONFIG_KEY = "cobolcheck.script.directory"; public static final String DEFAULT_COBOLCHECK_SCRIPT_DIRECTORY = "./"; public static final String GNUCOBOL_COMPILE_OPTIONS = "gnucobol.compile.options"; + public static final String RESOLVED_GNUCOBOL_COMPILE_OPTIONS = "resolved.gnucobol.compile.options"; private static Properties settings = null; @@ -331,9 +332,14 @@ public static String getScriptDirectory() { return getCorrectRunContext(settings.getProperty(COBOLCHECK_SCRIPT_DIRECTORY_CONFIG_KEY, DEFAULT_COBOLCHECK_SCRIPT_DIRECTORY)); } - public static String getGnuCOBOLCompileOptions() { - return settings.getProperty(GNUCOBOL_COMPILE_OPTIONS, - "") ; + + public static List getGnuCOBOLCompileOptions() { + setGnuCOBOLCompileOptions(); + return (List)settings.get(RESOLVED_GNUCOBOL_COMPILE_OPTIONS); + } + + public static void setGnuCOBOLCompileOptions() { + resolveConfigList(GNUCOBOL_COMPILE_OPTIONS, RESOLVED_GNUCOBOL_COMPILE_OPTIONS); } private static void setCopybookFilenameSuffix() { @@ -353,6 +359,19 @@ private static void resolveFilenameSuffixes(String configKey, String resolvedCon settings.put(resolvedConfigKey, suffixes); } + private static void resolveConfigList(String configKey, String resolvedConfigKey) { + String configCommaSeperatedList = getString(configKey, "NULL"); + List items = new ArrayList(); + String[] configListValues = null; + if (!configCommaSeperatedList.trim().equalsIgnoreCase("NULL")) { + configListValues = configCommaSeperatedList.split(Constants.COMMA); + for (String item : configListValues) { + items.add(item); + } + } + settings.put(resolvedConfigKey, items); + } + private static void setDefaultLocaleOverride() { if (!settings.containsKey(LOCALE_LANGUAGE_CONFIG_KEY)) { return; diff --git a/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java b/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java index 059a6015..2d9bfb7b 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java @@ -4,10 +4,7 @@ import org.openmainframeproject.cobolcheck.features.interpreter.State; import org.openmainframeproject.cobolcheck.services.Constants; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Locale; +import java.util.*; /* * Used by Writer @@ -445,4 +442,42 @@ public static boolean endsInPeriod(CobolLine line) { public static boolean endsInPeriod(List lines) { return lines.size() > 0 && lines.get(lines.size() - 1).getTrimmedString().endsWith(Constants.PERIOD); } + + /** + * Depending on the line that is being interpreted, we want to make sure that we update + * the current datastructure. This structure is based on the lines we have read so far in + * working storage. + * This will make sure to add or remove any referenced field within the structure, based on + * the level of said field within the structure. + */ + public static TreeMap updateCurrentDataStructure(CobolLine line, TreeMap currentHierarchy) { + if (currentHierarchy==null) { + currentHierarchy = new TreeMap<>(); + } + + int lastKeyOfCurrentHierarchy; + if (currentHierarchy.isEmpty()) { + lastKeyOfCurrentHierarchy=0; + } + else { + lastKeyOfCurrentHierarchy = currentHierarchy.lastKey(); + } + int tokenWeWantToAdd; + try { + tokenWeWantToAdd=Integer.parseInt(line.getToken(0)); + } + catch (NumberFormatException e) { + return currentHierarchy; + } + String variableName = line.getToken(1); + while (lastKeyOfCurrentHierarchy > tokenWeWantToAdd && tokenWeWantToAdd > 0) { + currentHierarchy.remove(lastKeyOfCurrentHierarchy); + lastKeyOfCurrentHierarchy = currentHierarchy.lastKey(); + } + if (currentHierarchy.containsKey(tokenWeWantToAdd)) + currentHierarchy.replace(tokenWeWantToAdd, variableName); + else + currentHierarchy.put(tokenWeWantToAdd, variableName); + return currentHierarchy; + } } diff --git a/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/NumericFields.java b/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/NumericFields.java index f71e1720..66aa6f9f 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/NumericFields.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/NumericFields.java @@ -5,6 +5,7 @@ import java.util.HashMap; import java.util.Map; +import java.util.Set; /** * Stores field type information for Data Division items in the program under test so the TestSuiteParser can @@ -22,6 +23,10 @@ public class NumericFields { public DataType dataTypeOf(String fieldName) { argumentCheck(fieldName, "ERR027"); if (fieldTypes == null) reset(); + + // We assume the fieldName has defined a datastructure. + fieldName=getKeyBasedOnAssumedDataStructure(fieldName); + return fieldTypes.getOrDefault(fieldName, DataType.ALPHANUMERIC); } @@ -46,4 +51,36 @@ private void argumentCheck(Object argumentValue, String messageId) { } + /** + * Based on the given value of the parsed fieldName, we want to make sure we + * find the correct key based on the datastructre that were referenced. + * If we cannot find the key, we return null + */ + private String getKeyBasedOnAssumedDataStructure(String line) { + // We will attempt to split the line on any " IN " and " OF " statements, to isolate the names + // in the referenced data structure. + String[] nameTokens = line.toUpperCase().split("(?:^|\\W)OF(?:$|\\W)|(?:^|\\W)IN(?:$|\\W)"); + Boolean found=false; + for (String key : fieldTypes.keySet()) { + if (key.toUpperCase().contains(nameTokens[0])) { + int previousNameIndex = 0; + int currentSearchIteration = 1; + found = true; + while (found && currentSearchIteration < nameTokens.length) { + int currentNameIndex = key.toUpperCase().indexOf(nameTokens[currentSearchIteration]); + if (currentNameIndex > previousNameIndex) { + currentSearchIteration++; + previousNameIndex = currentNameIndex; + } + else + found = false; + } + if (found) { + return key; + } + } + } + return null; + } + } diff --git a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteParserParsingTest.java b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteParserParsingTest.java index 1f14a72e..0fe24d18 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteParserParsingTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteParserParsingTest.java @@ -194,7 +194,7 @@ public void it_accepts_parenthesis_in_item_in_EXPECT() { public void it_finds_correct_data_type_for_table() { String expectedLine = " SET UT-NUMERIC-COMPARE TO TRUE"; testSuite.append(" EXPECT TABLE-FIELD IN WS-FIELDS (2 3) TO BE \"some value\""); - numericFields.setDataTypeOf("TABLE-FIELD", DataType.DISPLAY_NUMERIC); + numericFields.setDataTypeOf("TABLE-FIELD,WS-FIELDS", DataType.DISPLAY_NUMERIC); List actual = testSuiteParser.getParsedTestSuiteLines( new BufferedReader(new StringReader(testSuite.toString())), numericFields); diff --git a/vs code extension/CHANGELOG.md b/vs code extension/CHANGELOG.md index 25d024b7..4c110f41 100644 --- a/vs code extension/CHANGELOG.md +++ b/vs code extension/CHANGELOG.md @@ -1,6 +1,15 @@ # Change Log All notable changes to the "cobol-unit-test" extension will be documented in this file. Versioning according to SemVer: https://semver.org/ +## [0.3.9] 02.01.2023 +- Bugfix: Fixed an issue where the configure-command would remove a line from the configuration file, everytime you would overwrite an existing value. + +## [0.3.8] 21.12.2022 +- Fix for last release + +## [0.3.7] 21.12.2022 +- Now using Cobol Check version 0.2.5 +- Prepared for GnuCOBOL compiler options in config and scripts ## [0.3.6] 02.11.2022 - Now using Cobol Check version 0.2.4 diff --git a/vs code extension/Cobol-check/config.properties b/vs code extension/Cobol-check/config.properties index d2aeafa7..5347f7b0 100644 --- a/vs code extension/Cobol-check/config.properties +++ b/vs code extension/Cobol-check/config.properties @@ -163,6 +163,18 @@ application.copybook.filename.suffix = CBL,cbl,COB,cob #--------------------------------------------------------------------------------------------------------------------- concatenated.test.suites = Cobol-check/ALLTESTS +#--------------------------------------------------------------------------------------------------------------------- +# The GnuCOBOL compiler has a lot of different compile options. +# Some of these options are gathered in a dialect file (default: default.conf) +# and are located in the "GnuCOBOL-installationfolder/config"-folder. +# If you need any specific dialect file or other GnuCOBOL-specific compile options, you can add them here. +# If not specified, the default will be the normal GnuCOBOL compile setup. +# Separate options with a comma. Set the value to 'null' for default compile options +# Example: +# gnucobol.compile.options = -std=ibm,-fsingle-quote +#--------------------------------------------------------------------------------------------------------------------- +gnucobol.compile.options = null + #--------------------------------------------------------------------------------------------------------------------- # Shell scripts and JCL files for executing your test suites. # Cobol Check will invoke one of these after creating the copy of the program under test that contains @@ -181,3 +193,5 @@ freebsd.process = linux_gnucobol_run_tests windows.process = windows_gnucobol_run_tests.cmd zos.process = unix.process = linux_gnucobol_run_tests +cobol_run_tests +cobol_run_tests diff --git a/vs code extension/Cobol-check/default.properties b/vs code extension/Cobol-check/default.properties index d2aeafa7..86881a1e 100644 --- a/vs code extension/Cobol-check/default.properties +++ b/vs code extension/Cobol-check/default.properties @@ -163,6 +163,18 @@ application.copybook.filename.suffix = CBL,cbl,COB,cob #--------------------------------------------------------------------------------------------------------------------- concatenated.test.suites = Cobol-check/ALLTESTS +#--------------------------------------------------------------------------------------------------------------------- +# The GnuCOBOL compiler has a lot of different compile options. +# Some of these options are gathered in a dialect file (default: default.conf) +# and are located in the "GnuCOBOL-installationfolder/config"-folder. +# If you need any specific dialect file or other GnuCOBOL-specific compile options, you can add them here. +# If not specified, the default will be the normal GnuCOBOL compile setup. +# Separate options with a comma. Set the value to 'null' for default compile options +# Example: +# gnucobol.compile.options = -std=ibm,-fsingle-quote +#--------------------------------------------------------------------------------------------------------------------- +gnucobol.compile.options = null + #--------------------------------------------------------------------------------------------------------------------- # Shell scripts and JCL files for executing your test suites. # Cobol Check will invoke one of these after creating the copy of the program under test that contains diff --git a/vs code extension/Cobol-check/scripts/windows_gnucobol_run_tests.cmd b/vs code extension/Cobol-check/scripts/windows_gnucobol_run_tests.cmd index c010bc76..3bfb01c4 100644 --- a/vs code extension/Cobol-check/scripts/windows_gnucobol_run_tests.cmd +++ b/vs code extension/Cobol-check/scripts/windows_gnucobol_run_tests.cmd @@ -5,4 +5,4 @@ rem Assumptions: rem rem GnuCOBOL 3.+ is installed and on the path. Its executable or alias or symlink is named "cobc". -cobc -x %1 %2 && %~n1 \ No newline at end of file +cobc -x %* && %~n1 \ No newline at end of file diff --git a/vs code extension/client/src/extension.ts b/vs code extension/client/src/extension.ts index f848973f..e667e6a8 100644 --- a/vs code extension/client/src/extension.ts +++ b/vs code extension/client/src/extension.ts @@ -19,7 +19,7 @@ import path = require('path'); let externalVsCodeInstallationDir = vscode.extensions.getExtension("openmainframeproject.cobol-check-extension").extensionPath; let configPath = appendPath(externalVsCodeInstallationDir, 'Cobol-check/config.properties'); let defaultConfigPath = appendPath(externalVsCodeInstallationDir, 'Cobol-check/default.properties'); -let cobolCheckJarPath = appendPath(externalVsCodeInstallationDir, 'Cobol-check/bin/cobol-check-0.2.2.jar'); +let cobolCheckJarPath = appendPath(externalVsCodeInstallationDir, 'Cobol-check/bin/cobol-check-0.2.5.jar'); let lastCurrentFile = null; let cutLanguageRunning = false; @@ -57,17 +57,19 @@ export function activate(context: ExtensionContext) { }); }); - let setConfiguration_Cmd = vscode.commands.registerCommand('cobolcheck.configure', () => { - getConfigurationMap(configPath, async (configMap) => { - if (configMap === null) return; - const configKey = await vscode.window.showQuickPick(Array.from(configMap.keys()), {placeHolder: 'Pick a configuration'}); - if (configKey === undefined) return; - - const newValue = await vscode.window.showInputBox({placeHolder: 'New configuration value'}) - if (newValue === undefined) return; - - setConfiguration(configPath, configKey, newValue); - }); + let setConfiguration_Cmd = vscode.commands.registerCommand('cobolcheck.configure', (key : string, value : string) => { + if (key && value){ + setConfiguration(configPath, key, value); + } + else{ + getConfigurationMap(configPath, async (configMap) => { + if (configMap === null) return; + key = await vscode.window.showQuickPick(Array.from(configMap.keys()), {placeHolder: 'Pick a configuration'}); + const value = await vscode.window.showInputBox({placeHolder: 'New configuration value'}) + if (!key || !value) return; + setConfiguration(configPath, key, value); + }); + } }); let resetConfigurations_Cmd = vscode.commands.registerCommand('cobolcheck.reset.configuration', () => { diff --git a/vs code extension/client/src/services/CobolCheckConfiguration.ts b/vs code extension/client/src/services/CobolCheckConfiguration.ts index 03acee16..b8df8049 100644 --- a/vs code extension/client/src/services/CobolCheckConfiguration.ts +++ b/vs code extension/client/src/services/CobolCheckConfiguration.ts @@ -52,7 +52,7 @@ export function setConfiguration(configurationPath : string, key : string, newVa let keyValue = trimmedLine.split('='); if (keyValue.length > 1 && keyValue[0].trim() === key){ - newConfigurationText += key + ' = ' + newValue; + newConfigurationText += key + ' = ' + newValue + '\n'; keyHasBeenFound = true; LOGGER.log("Updated configuration key: " + key + " with value: " + newValue, LOGGER.INFO); } else{ @@ -62,6 +62,7 @@ export function setConfiguration(configurationPath : string, key : string, newVa if (!keyHasBeenFound){ vscode.window.showErrorMessage('Could not find key: ' + key + ' in config file: ' + configurationPath) + return; } fs.writeFile(configurationPath, newConfigurationText, 'utf8', function (err) { if(err) { diff --git a/vs code extension/package.json b/vs code extension/package.json index 8c69a62e..6a61465a 100644 --- a/vs code extension/package.json +++ b/vs code extension/package.json @@ -8,7 +8,7 @@ "Snippets" ], "description": "Extension for running unit tests in Cobol", - "version": "0.3.6", + "version": "0.3.9", "icon": "images/cobol-check-logo-small.png", "engines": { "vscode": "^1.46.0" From 8a52e7103184c1ed1039cae9faf4d303d3f288c2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20M=C3=B8nster?= Date: Thu, 12 Jan 2023 13:04:24 +0100 Subject: [PATCH 005/180] Merge branch 'Developer' of https://github.com/openmainframeproject/cobol-check into Developer MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Benjamin Mønster --- .github/workflows/VerifyAction.yml | 2 +- build.gradle | 2 +- build/distributions/cobol-check-0.2.5.zip | Bin 0 -> 214978 bytes .../features/testSuiteParser/Keywords.java | 26 ++++++++++++++ .../testSuiteParser/TestSuiteErrorLog.java | 9 +++++ .../testSuiteParser/TestSuiteParser.java | 23 +++++++----- .../cobolcheck/services/Constants.java | 3 +- .../cobolcheck/services/StringHelper.java | 5 ++- .../cobolcheck/KeywordsTest.java | 5 +++ .../cobolcheck/MockingTest.java | 16 +++++---- .../cobolcheck/TestSuiteErrorLogTest.java | 34 ++++++++++++++++++ .../Cobol-check/bin/cobol-check-0.2.2.jar | Bin 215509 -> 0 bytes .../Cobol-check/bin/cobol-check-0.2.3.jar | Bin 238106 -> 0 bytes ...-check-0.2.4.jar => cobol-check-0.2.5.jar} | Bin 237505 -> 239839 bytes 14 files changed, 105 insertions(+), 20 deletions(-) create mode 100644 build/distributions/cobol-check-0.2.5.zip delete mode 100644 vs code extension/Cobol-check/bin/cobol-check-0.2.2.jar delete mode 100644 vs code extension/Cobol-check/bin/cobol-check-0.2.3.jar rename vs code extension/Cobol-check/bin/{cobol-check-0.2.4.jar => cobol-check-0.2.5.jar} (75%) diff --git a/.github/workflows/VerifyAction.yml b/.github/workflows/VerifyAction.yml index 2af58a79..c5adb60f 100644 --- a/.github/workflows/VerifyAction.yml +++ b/.github/workflows/VerifyAction.yml @@ -13,7 +13,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [ubuntu-18.04, windows-latest, macos-latest] + os: [ubuntu-22.04, windows-latest, macos-latest] java-version: [8, 11] steps: diff --git a/build.gradle b/build.gradle index e2f7d3d7..11354920 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ plugins { id 'jacoco' } -def productVersion = '0.2.4' +def productVersion = '0.2.5' def productName = 'cobol-check' group = 'org.openmainframeproject' description = 'Unit testing framework for Cobol' diff --git a/build/distributions/cobol-check-0.2.5.zip b/build/distributions/cobol-check-0.2.5.zip new file mode 100644 index 0000000000000000000000000000000000000000..71a86fe5e00fd78013158e202d413e7dc9f20edf GIT binary patch literal 214978 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 literal 0 HcmV?d00001 diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Keywords.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Keywords.java index a90c5f74..93958d7d 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Keywords.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Keywords.java @@ -139,6 +139,7 @@ public class Keywords { Arrays.asList(), new HashMap>() {{ put(Constants.EXPECT_KEYWORD, Arrays.asList( + Constants.NUMERIC_KEYWORD, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, Constants.BOOLEAN_VALUE, @@ -153,6 +154,7 @@ public class Keywords { Arrays.asList(), new HashMap>() {{ put(Constants.EXPECT_KEYWORD, Arrays.asList( + Constants.NUMERIC_KEYWORD, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, Constants.BOOLEAN_VALUE, @@ -165,12 +167,14 @@ public class Keywords { keywordInfo.put(Constants.EQUAL_SIGN_KEYWORD, new Keyword(Constants.EQUAL_SIGN_KEYWORD, Arrays.asList(Constants.FIELDNAME_KEYWORD, + Constants.NUMERIC_KEYWORD, Constants.COBOL_TOKEN, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, Constants.BOOLEAN_VALUE), new HashMap>() {{ put(Constants.EXPECT_KEYWORD, Arrays.asList( + Constants.NUMERIC_KEYWORD, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, Constants.BOOLEAN_VALUE, @@ -183,12 +187,14 @@ public class Keywords { keywordInfo.put(Constants.GREATER_THAN_SIGN_KEYWORD, new Keyword(Constants.GREATER_THAN_SIGN_KEYWORD, Arrays.asList(Constants.FIELDNAME_KEYWORD, + Constants.NUMERIC_KEYWORD, Constants.COBOL_TOKEN, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, Constants.BOOLEAN_VALUE), new HashMap>() {{ put(Constants.EXPECT_KEYWORD, Arrays.asList( + Constants.NUMERIC_KEYWORD, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, Constants.BOOLEAN_VALUE, @@ -201,12 +207,14 @@ public class Keywords { keywordInfo.put(Constants.GREATER_THAN_EQUAL_TO_SIGN_KEYWORD, new Keyword(Constants.GREATER_THAN_EQUAL_TO_SIGN_KEYWORD, Arrays.asList(Constants.FIELDNAME_KEYWORD, + Constants.NUMERIC_KEYWORD, Constants.COBOL_TOKEN, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, Constants.BOOLEAN_VALUE), new HashMap>() {{ put(Constants.EXPECT_KEYWORD, Arrays.asList( + Constants.NUMERIC_KEYWORD, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, Constants.BOOLEAN_VALUE, @@ -219,12 +227,14 @@ public class Keywords { keywordInfo.put(Constants.LESS_THAN_SIGN_KEYWORD, new Keyword(Constants.LESS_THAN_SIGN_KEYWORD, Arrays.asList(Constants.FIELDNAME_KEYWORD, + Constants.NUMERIC_KEYWORD, Constants.COBOL_TOKEN, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, Constants.BOOLEAN_VALUE), new HashMap>() {{ put(Constants.EXPECT_KEYWORD, Arrays.asList( + Constants.NUMERIC_KEYWORD, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, Constants.BOOLEAN_VALUE, @@ -237,10 +247,26 @@ public class Keywords { keywordInfo.put(Constants.LESS_THAN_EQUAL_TO_SIGN_KEYWORD, new Keyword(Constants.LESS_THAN_EQUAL_TO_SIGN_KEYWORD, Arrays.asList(Constants.FIELDNAME_KEYWORD, + Constants.NUMERIC_KEYWORD, Constants.COBOL_TOKEN, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, Constants.BOOLEAN_VALUE), + new HashMap>() {{ + put(Constants.EXPECT_KEYWORD, Arrays.asList( + Constants.NUMERIC_KEYWORD, + Constants.ALPHANUMERIC_LITERAL_KEYWORD, + Constants.NUMERIC_LITERAL_KEYWORD, + Constants.BOOLEAN_VALUE, + Constants.COBOL_TOKEN) + ); + }}, + KeywordAction.EXPECTED_VALUE)); + + //--------------------------------NUMERIC + keywordInfo.put(Constants.NUMERIC_KEYWORD, + new Keyword(Constants.NUMERIC_KEYWORD, + Arrays.asList(), new HashMap>() {{ put(Constants.EXPECT_KEYWORD, Arrays.asList( Constants.ALPHANUMERIC_LITERAL_KEYWORD, diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteErrorLog.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteErrorLog.java index 6b771043..e5abcab2 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteErrorLog.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteErrorLog.java @@ -148,6 +148,15 @@ public void logUnusedMocks(List mocks){ } } + public void logVariableTypeMismatch(String expectedType, String actualType, String currentFile, int lineNumber, int lineIndex){ + String error = ""; + error += String.format(fileMessage, displayErrorType(ErrorTypes.WARNING), currentFile) + ":" + lineNumber + ":" + lineIndex + ":" + Constants.NEWLINE; + error += String.format(lineIndexMessage, lineNumber, lineIndex) + Constants.NEWLINE; + error += "Expected compare to be of type <" + expectedType +">, but the variable was classified as the type <" + actualType + ">" + Constants.NEWLINE; + error += "The test was carried out with the compare type <" + actualType + ">" + Constants.NEWLINE + Constants.NEWLINE; + outputError(error); + } + private void outputError(String error) { errorLogMessages += error; System.out.println(error); diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index 73f0e6c3..7d22aae0 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -8,10 +8,8 @@ import java.io.BufferedReader; import java.io.IOException; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; import java.util.Locale; -import java.util.regex.Pattern; /** * Parses the concatenated test suite and writes Cobol test code to the output @@ -76,6 +74,7 @@ public class TestSuiteParser { private int testSuiteNumber = 0; private String currentTestCaseName = Constants.EMPTY_STRING; private int testCaseNumber = 0; + private boolean expectNumericCompare; // Lines inserted into the test program private static final String COBOL_PERFORM_INITIALIZE = " PERFORM %sINITIALIZE"; @@ -307,13 +306,6 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, case Constants.COBOL_TOKEN: case Constants.FIELDNAME_KEYWORD: - // TODO:remove when implementing EXPECT NUMERIC - if (testSuiteToken.equals("NUMERIC")) { - Log.debug( - "==WARNING== is not implemented and could cause unintended behaviour ==WARNING=="); - ignoreCobolStatementAndFieldNameKeyAction = true; - break; - } if (expectQualifiedName) { fieldNameForExpect += testSuiteToken; expectQualifiedName = false; @@ -581,6 +573,10 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, toBeInProgress = true; break; + case Constants.NUMERIC_KEYWORD: + expectNumericCompare = true; + break; + case Constants.QUALIFIED_FIELD_NAME: if (cobolTokenIsFieldName){ fieldNameForExpect += Constants.SPACE + testSuiteToken + Constants.SPACE; @@ -889,6 +885,10 @@ void addIncrementTestCaseCountLine(List parsedTestSuiteLines) { void addTestCodeForAssertion(List parsedTestSuiteLines, NumericFields numericFields) { addSetNormalOrReverseCompare(parsedTestSuiteLines); if (boolean88LevelCompare) { + if (expectNumericCompare){ + testSuiteErrorLog.logVariableTypeMismatch(Constants.NUMERIC_KEYWORD, "BOOLEAN88", + currentTestSuiteRealFile, fileLineNumber, fileLineIndexNumber); + } addTestCodeFor88LevelEqualityCheck(parsedTestSuiteLines); } else { if (fieldIsANumericDataType(fieldNameForExpect)) { @@ -899,6 +899,10 @@ void addTestCodeForAssertion(List parsedTestSuiteLines, NumericFields nu parsedTestSuiteLines.add(String.format( COBOL_MOVE_EXPECTED_NUMERIC_LITERAL, testCodePrefix, expectedValueToCompare)); } else { + if (expectNumericCompare){ + testSuiteErrorLog.logVariableTypeMismatch(Constants.NUMERIC_KEYWORD, "ALPHANUMERIC", + currentTestSuiteRealFile, fileLineNumber, fileLineIndexNumber); + } parsedTestSuiteLines.add(String.format( COBOL_SET_ALPHANUMERIC_COMPARE, testCodePrefix, Constants.TRUE)); parsedTestSuiteLines.add(String.format( @@ -919,6 +923,7 @@ void addTestCodeForAssertion(List parsedTestSuiteLines, NumericFields nu greaterThanComparison = false; lessThanComparison = false; } + expectNumericCompare = false; } void addTestCodeFor88LevelEqualityCheck(List parsedTestSuiteLines) { diff --git a/src/main/java/org/openmainframeproject/cobolcheck/services/Constants.java b/src/main/java/org/openmainframeproject/cobolcheck/services/Constants.java index c15844d6..424fc4d6 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/services/Constants.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/services/Constants.java @@ -83,6 +83,7 @@ private Constants() { public static final String END_BEFORE_TOKEN = "END-BEFORE"; public static final String AFTER_EACH_TOKEN = "AFTER EACH"; public static final String END_AFTER_TOKEN = "END-AFTER"; + public static final String NUMERIC_KEYWORD = "NUMERIC"; public static final String IN_KEYWORD = "IN"; public static final String OF_KEYWORD = "OF"; @@ -90,7 +91,7 @@ private Constants() { public static final String BEFORE_EACH_TOKEN_HYPHEN = "BEFORE-EACH"; public static final String AFTER_EACH_TOKEN_HYPHEN = "AFTER-EACH"; public static final String PARA_TOKEN = "PARA"; - public static final List IGNORED_TOKENS = Arrays.asList("END-CALL", "NUMERIC"); + public static final List IGNORED_TOKENS = Arrays.asList("END-CALL"); // Configuration key values public static final String CONCATENATED_TEST_SUITES_CONFIG_KEY = "concatenated.test.suites"; diff --git a/src/main/java/org/openmainframeproject/cobolcheck/services/StringHelper.java b/src/main/java/org/openmainframeproject/cobolcheck/services/StringHelper.java index 906ac4c2..f7218093 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/services/StringHelper.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/services/StringHelper.java @@ -217,7 +217,10 @@ public static boolean isStringContinuationLine(String line) { } public static String moveToAreaB(String line){ - return " " + line.trim(); + if (line.trim().startsWith("*")) + return " " + line.trim(); + else + return " " + line.trim(); } public static List moveToAreaB(List lines){ diff --git a/src/test/java/org/openmainframeproject/cobolcheck/KeywordsTest.java b/src/test/java/org/openmainframeproject/cobolcheck/KeywordsTest.java index 9b184dcf..86307dae 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/KeywordsTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/KeywordsTest.java @@ -66,6 +66,7 @@ private static Stream KeywordProvider() { KeywordAction.TESTSUITE_NAME), Arguments.of(Constants.EQUAL_SIGN_KEYWORD, Constants.EQUAL_SIGN_KEYWORD, Arrays.asList(Constants.FIELDNAME_KEYWORD, + Constants.NUMERIC_KEYWORD, Constants.COBOL_TOKEN, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, @@ -76,6 +77,7 @@ private static Stream KeywordProvider() { KeywordAction.REVERSE_LOGIC), Arguments.of(Constants.GREATER_THAN_SIGN_KEYWORD, Constants.GREATER_THAN_SIGN_KEYWORD, Arrays.asList(Constants.FIELDNAME_KEYWORD, + Constants.NUMERIC_KEYWORD, Constants.COBOL_TOKEN, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, @@ -83,6 +85,7 @@ private static Stream KeywordProvider() { KeywordAction.EXPECTED_VALUE), Arguments.of(Constants.LESS_THAN_SIGN_KEYWORD, Constants.LESS_THAN_SIGN_KEYWORD, Arrays.asList(Constants.FIELDNAME_KEYWORD, + Constants.NUMERIC_KEYWORD, Constants.COBOL_TOKEN, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, @@ -90,6 +93,7 @@ private static Stream KeywordProvider() { KeywordAction.EXPECTED_VALUE), Arguments.of(Constants.GREATER_THAN_EQUAL_TO_SIGN_KEYWORD, Constants.GREATER_THAN_EQUAL_TO_SIGN_KEYWORD, Arrays.asList(Constants.FIELDNAME_KEYWORD, + Constants.NUMERIC_KEYWORD, Constants.COBOL_TOKEN, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, @@ -97,6 +101,7 @@ private static Stream KeywordProvider() { KeywordAction.EXPECTED_VALUE), Arguments.of(Constants.LESS_THAN_EQUAL_TO_SIGN_KEYWORD, Constants.LESS_THAN_EQUAL_TO_SIGN_KEYWORD, Arrays.asList(Constants.FIELDNAME_KEYWORD, + Constants.NUMERIC_KEYWORD, Constants.COBOL_TOKEN, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, diff --git a/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java b/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java index 525abd66..817d51ae 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java @@ -192,18 +192,20 @@ public void call_mock_gets_call_type() throws IOException { @Test public void mock_gets_correct_lines() throws IOException { - String str1 = " TESTSUITE \"Name of test suite\""; - String str2 = " TESTCASE \"Name of test case\""; - String str3 = " MOCK SECTION 000-START"; - String str4 = " MOVE \"something\" TO this"; - String str5 = " MOVE \"something else\" TO other"; - String str6 = " END-MOCK"; + String str1 = " TESTSUITE \"Name of test suite\""; + String str2 = " TESTCASE \"Name of test case\""; + String str3 = " MOCK SECTION 000-START"; + String str4 = " * MOVE \"something\" TO this"; + String str5 = " MOVE \"something\" TO this"; + String str6 = " MOVE \"something else\" TO other"; + String str7 = " END-MOCK"; List expected = new ArrayList<>(); + expected.add(" * MOVE \"something\" TO this"); expected.add(" MOVE \"something\" TO this"); expected.add(" MOVE \"something else\" TO other"); - Mockito.when(mockedReader.readLine()).thenReturn(str1, str2, str3, str4, str5, str6, null); + Mockito.when(mockedReader.readLine()).thenReturn(str1, str2, str3, str4, str5, str6, str7, null); testSuiteParser.getParsedTestSuiteLines(mockedReader, numericFields); assertEquals(expected, mockRepository.getMocks().get(0).getLines()); diff --git a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java index 88c860a2..abc96f35 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java @@ -11,6 +11,7 @@ import org.openmainframeproject.cobolcheck.features.writer.CobolWriter; import org.openmainframeproject.cobolcheck.services.Config; import org.openmainframeproject.cobolcheck.services.Constants; +import org.openmainframeproject.cobolcheck.services.cobolLogic.DataType; import org.openmainframeproject.cobolcheck.services.cobolLogic.NumericFields; import java.io.BufferedReader; @@ -391,4 +392,37 @@ public void it_catches_unexpected_keyword_after_verify() { assertEquals(expectedResult, actualResult); } + @Test + public void it_catches_type_mismatch_of_numeric_and_alphanumeric_for_explicit_numeric_in_unit_test() { + testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); + testSuite.append(" TESTCASE \"Name of test case\""+ Constants.NEWLINE); + testSuite.append(" EXPECT WS-ALPHA-VALUE TO BE NUMERIC \"Hello\""+ Constants.NEWLINE); + + String expectedResult = ""; + expectedResult += "WARNING in file: null:3:44:" + Constants.NEWLINE; + expectedResult += "Unexpected token on line 3, index 44:" + Constants.NEWLINE; + expectedResult += "Expected compare to be of type , but the variable was classified as the type " + Constants.NEWLINE; + expectedResult += "The test was carried out with the compare type " + Constants.NEWLINE + Constants.NEWLINE; + + testSuiteParser.getParsedTestSuiteLines(new BufferedReader(new StringReader(testSuite.toString())), numericFields); + + String actualResult = testSuiteErrorLog.getErrorMessages(); + assertEquals(expectedResult, actualResult); + } + + @Test + public void explicit_numeric_gives_no_warning_when_variable_is_numeric() { + testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); + testSuite.append(" TESTCASE \"Name of test case\""+ Constants.NEWLINE); + testSuite.append(" EXPECT WS-NUMERIC-VALUE TO BE NUMERIC 1"+ Constants.NEWLINE); + + String expectedResult = ""; + + numericFields.setDataTypeOf("WS-NUMERIC-VALUE", DataType.PACKED_DECIMAL); + + testSuiteParser.getParsedTestSuiteLines(new BufferedReader(new StringReader(testSuite.toString())), numericFields); + + String actualResult = testSuiteErrorLog.getErrorMessages(); + assertEquals(expectedResult, actualResult); + } } diff --git a/vs code extension/Cobol-check/bin/cobol-check-0.2.2.jar b/vs code extension/Cobol-check/bin/cobol-check-0.2.2.jar deleted file mode 100644 index 935f6621a178aa97e1c3f74ebfa23b5c197bc3eb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 215509 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

oZ*J#BS@K@(5^6~jfd-wl?)|449t15BnN}% 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%0D@AKz`X?pydSoMoS{^1^q8k;$Amzdp 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 z�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 diff --git a/vs code extension/Cobol-check/bin/cobol-check-0.2.4.jar b/vs code extension/Cobol-check/bin/cobol-check-0.2.5.jar similarity index 75% rename from vs code extension/Cobol-check/bin/cobol-check-0.2.4.jar rename to vs code extension/Cobol-check/bin/cobol-check-0.2.5.jar index 46657b430e719a42aa697a0ee4560dd28711f45d..f9d37afdcef158b8ba475a4c9fad710e07dedfae 100644 GIT binary patch delta 41546 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 delta 39640 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 TCkqekhQC)~$gRx6+HL#~W|2zS From c3b7991b8119bdcc314965ab21b3d192ec48dfcb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20M=C3=B8nster?= Date: Thu, 12 Jan 2023 13:14:49 +0100 Subject: [PATCH 006/180] Version bump + Changelog addition MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Benjamin Mønster --- CHANGELOG.md | 4 ++++ README.md | 2 +- build.gradle | 2 +- 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1979c311..a5319cfb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Mock SQL tables - Mock batch file I/O +## \[0.2.6\] 2023-01-12 - Unreleased +### Implemented +- Datastructure-verification for Working Storage has been added. + ## \[0.2.5\] 2022-12-21 ### Implemented - Compiler options for COBOL Check's run of GnuCOBOL can be set in the config-file diff --git a/README.md b/README.md index a08d6ffe..de8ccfb2 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ As of March 2022 we could use help with: ## Downloads -Version 0.2.5 pre-release is available! +Version 0.2.6 pre-release is available! [//]: # (- Find the download on the project home page on the [Neo Pragma site](https://neopragma.com/projects/cobol-check/).) - Find distributions here: [Cobol Check Ditributions](https://github.com/openmainframeproject/cobol-check/blob/main/build/distributions). diff --git a/build.gradle b/build.gradle index 11354920..20e17f6e 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ plugins { id 'jacoco' } -def productVersion = '0.2.5' +def productVersion = '0.2.6' def productName = 'cobol-check' group = 'org.openmainframeproject' description = 'Unit testing framework for Cobol' From a470461c36d515fc1a9b0a5b170f8f7eb1324252 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20M=C3=B8nster?= Date: Tue, 14 Feb 2023 08:32:09 +0100 Subject: [PATCH 007/180] Attempt to merge develop into branch MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Benjamin Mønster --- .github/workflows/VerifyAction.yml | 4 +- .gitignore | 5 + ALLTESTS | 339 +--- CC##99.CBL | 1718 ++--------------- CHANGELOG.md | 9 - README.md | 2 +- approval-test-expected.txt | 421 ++-- build.gradle | 2 +- config.properties | 14 +- scripts/windows_gnucobol_run_tests.cmd | 3 +- src/main/cobol/DB2PROG.cbl | 96 + src/main/cobol/MOCKTEST.CBL | 16 +- src/main/cobol/copy/COPY001-padded.CBL | 16 +- src/main/cobol/copy/SQLCA.cpy | 24 + src/main/cobol/copy/TEXE2.cpy | 14 + src/main/cobol/copy/TEXEM.cpy | 12 + .../CopybookCouldNotBeExpanded.java | 7 + .../interpreter/CopybookExpander.java | 51 +- .../interpreter/InterpreterController.java | 374 ++-- .../features/interpreter/LineRepository.java | 20 +- .../launcher/Formatter/Formats/Formatter.java | 3 +- .../features/launcher/LaunchHelper.java | 32 - .../launcher/LinuxProcessLauncher.java | 8 +- .../launcher/WindowsProcessLauncher.java | 13 +- .../features/testSuiteParser/Keywords.java | 48 +- .../testSuiteParser/TestSuiteErrorLog.java | 9 - .../testSuiteParser/TestSuiteParser.java | 42 +- .../cobolcheck/services/Config.java | 24 - .../cobolcheck/services/Constants.java | 4 +- .../cobolcheck/services/StringHelper.java | 5 +- .../services/cobolLogic/Interpreter.java | 196 +- .../services/cobolLogic/NumericFields.java | 37 - .../cobolcheck/workers/Generator.java | 10 +- src/test/cobol/DB2PROG/DB2TEST.cut | 7 + .../cobolcheck/InterpreterControllerTest.java | 140 ++ .../cobolcheck/KeywordsTest.java | 5 - .../cobolcheck/MockIT.java | 2 + .../cobolcheck/MockingTest.java | 16 +- .../cobolcheck/TestSuiteErrorLogTest.java | 34 - .../TestSuiteParserParsingTest.java | 2 +- testsuites/concatenatedTestsuites | 2 +- vs code extension/CHANGELOG.md | 9 - .../Cobol-check/bin/cobol-check-0.2.4.jar | Bin 0 -> 239745 bytes .../Cobol-check/config.properties | 14 - .../Cobol-check/default.properties | 12 - .../scripts/windows_gnucobol_run_tests.cmd | 2 +- vs code extension/client/src/extension.ts | 26 +- .../src/services/CobolCheckConfiguration.ts | 3 +- vs code extension/package.json | 2 +- 49 files changed, 1114 insertions(+), 2740 deletions(-) create mode 100644 src/main/cobol/DB2PROG.cbl create mode 100644 src/main/cobol/copy/SQLCA.cpy create mode 100644 src/main/cobol/copy/TEXE2.cpy create mode 100644 src/main/cobol/copy/TEXEM.cpy create mode 100644 src/main/java/org/openmainframeproject/cobolcheck/exceptions/CopybookCouldNotBeExpanded.java delete mode 100644 src/main/java/org/openmainframeproject/cobolcheck/features/launcher/LaunchHelper.java create mode 100644 src/test/cobol/DB2PROG/DB2TEST.cut create mode 100644 vs code extension/Cobol-check/bin/cobol-check-0.2.4.jar diff --git a/.github/workflows/VerifyAction.yml b/.github/workflows/VerifyAction.yml index c5adb60f..7583459d 100644 --- a/.github/workflows/VerifyAction.yml +++ b/.github/workflows/VerifyAction.yml @@ -5,7 +5,7 @@ on: branches: - '*' pull_request: - branches: [ main ] + branches: [ main,Developer ] jobs: build: @@ -13,7 +13,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [ubuntu-22.04, windows-latest, macos-latest] + os: [ubuntu-18.04, windows-latest, macos-latest] java-version: [8, 11] steps: diff --git a/.gitignore b/.gitignore index 1fc039d4..8676cb8a 100644 --- a/.gitignore +++ b/.gitignore @@ -120,3 +120,8 @@ nb-configuration.xml ## OS X ############################## .DS_Store +output/testResults.txt +approval-test-actual.txt +default.conf +null +ParserErrorLog.txt \ No newline at end of file diff --git a/ALLTESTS b/ALLTESTS index f3a3257f..442f0c50 100644 --- a/ALLTESTS +++ b/ALLTESTS @@ -1,331 +1,8 @@ - *From file: C:\Udvikler\Workspace\cobol-check-main\src\test\cobol\MOCKTEST\BeforeAfterTest.cut - TestSuite "Before and after tests 1" - - BEFORE-EACH - MOVE "prepare" TO VALUE-1 - END-BEFORE - - AFTER-EACH - MOVE "clean" TO VALUE-2 - END-AFTER - - TestCase "Before sets value" - EXPECT VALUE-1 TO BE "prepare" - - TestCase "After sets value" - EXPECT VALUE-2 TO BE "clean" - - TestCase "Before happens before Testcase" - MOVE "during" TO VALUE-1 - EXPECT VALUE-1 TO BE "during" - - TestCase "After happens after Testcase (part 1)" - MOVE "during" TO VALUE-2 - EXPECT VALUE-2 TO BE "during" - - TestCase "After happens after Testcase (part 2)" - EXPECT VALUE-2 TO BE "clean" - - - TestSuite "Before and after tests 2" - BEFORE-EACH - MOVE "before1" TO VALUE-1 - MOVE "before2" TO VALUE-2 - PERFORM 000-START - END-BEFORE - - AFTER EACH - MOVE "clean up" TO VALUE-3 - PERFORM 100-WELCOME - END-AFTER - - - MOCK SECTION 000-START - MOVE "GlobalMockedSection1" TO VALUE-1 - END-MOCK - - MOCK SECTION 100-WELCOME - MOVE "GlobalMockedSection2" TO VALUE-3 - END-MOCK - - TestCase "Performs of mocked items does not influence count" - VERIFY SECTION 000-START HAPPENED 0 TIMES - VERIFY SECTION 100-WELCOME NEVER HAPPENED - - TestCase "Only global mocks apply in before/after (part 1)" - MOVE "arg3" TO VALUE-3 - MOCK SECTION 000-START - MOVE "LocalMockedSection1" TO VALUE-1 - END-MOCK - MOCK SECTION 100-WELCOME - MOVE "LocalMockedSection2" TO VALUE-3 - END-MOCK - EXPECT VALUE-1 TO BE "GlobalMockedSection1" - EXPECT VALUE-2 TO BE "before2" - EXPECT VALUE-3 TO BE "arg3" - - TestCase "Only global mocks apply in before/after (part 2)" - MOCK SECTION 000-START - MOVE "LocalMockedSection1" TO VALUE-1 - END-MOCK - MOCK SECTION 100-WELCOME - MOVE "LocalMockedSection2" TO VALUE-3 - END-MOCK - EXPECT VALUE-1 TO BE "GlobalMockedSection1" - EXPECT VALUE-2 TO BE "before2" - EXPECT VALUE-3 TO BE "GlobalMockedSection2" - - TestCase "Only global mocks apply in before/after (part 3)" - MOCK SECTION 000-START - MOVE "LocalMockedSection1" TO VALUE-1 - END-MOCK - MOCK SECTION 100-WELCOME - MOVE "LocalMockedSection2" TO VALUE-3 - END-MOCK - EXPECT VALUE-1 TO BE "GlobalMockedSection1" - EXPECT VALUE-2 TO BE "before2" - EXPECT VALUE-3 TO BE "GlobalMockedSection2" - - TestSuite "Before and after tests 3" - - BEFORE EACH - MOVE "before" TO VALUE-1 - END-BEFORE - - AFTER-EACH - MOVE "after" TO VALUE-1 - END-AFTER - - TestCase "Before proceeds after from last testcase (part 1)" - EXPECT VALUE-1 TO BE "before" - - TestCase "Before proceeds after from last testcase (part 2)" - EXPECT VALUE-1 TO BE "before" - *From file: C:\Udvikler\Workspace\cobol-check-main\src\test\cobol\MOCKTEST\GeneralTest.cut - TestSuite "General tests" - - TestCase "No Expect or Verify" - PERFORM 100-WELCOME - - TestCase "Welcome section performs as intended" - PERFORM 100-WELCOME - Expect VALUE-1 to be "Hello" - Expect VALUE-2 to be "Hi" - - TestCase "Goodbye section performs as intended" - PERFORM 200-GOODBYE - Expect VALUE-1 to be "Bye" - Expect VALUE-2 to be "See you" - - TestCase "Change-1 changes hello to bye" - PERFORM 100-WELCOME - PERFORM 300-CHANGE-1 - Expect VALUE-1 to be "Bye" - Expect VALUE-2 to be "Hi" - - TestCase "Change-1 changes bye to hello" - PERFORM 200-GOODBYE - PERFORM 300-CHANGE-1 - Expect VALUE-1 to be "Hello" - Expect VALUE-2 to be "See you" - - TestCase "Change-2 changes hi to see you" - PERFORM 100-WELCOME - PERFORM 400-CHANGE-2 - Expect VALUE-1 to be "Hello" - Expect VALUE-2 to be "See you" - - TestCase "Change-2 changes see you to hi" - PERFORM 200-GOODBYE - PERFORM 400-CHANGE-2 - Expect VALUE-1 to be "Bye" - Expect VALUE-2 to be "Hi" - - TestCase "Switches values" - PERFORM 100-WELCOME - PERFORM 500-SWITCH - Expect VALUE-1 to be "Hi" - Expect VALUE-2 to be "Hello" - *From file: C:\Udvikler\Workspace\cobol-check-main\src\test\cobol\MOCKTEST\MockCallTest.cut - * Test for mocking call statements - * Writing a comment to test stuff - * - *Yeah - * - TestSuite "Mock Call statements test" - - MOCK CALL 'PROG1' - MOVE "Global PROG1" TO VALUE-1 - END-MOCK - - TestCase "Simple call mock works" - MOCK CALL 'PROG1' - MOVE "From mocked PROG1" TO VALUE-1 - END-MOCK - PERFORM 600-MAKE-CALL - EXPECT VALUE-1 TO BE "From mocked PROG1" - EXPECT VALUE-2 TO BE "arg2" - VERIFY CALL 'PROG1' HAPPENED ONCE - - TestCase "Simple global call mock works" - PERFORM 600-MAKE-CALL - EXPECT VALUE-1 TO BE "Global PROG1" - EXPECT VALUE-2 TO BE "arg2" - VERIFY CALL 'PROG1' HAPPENED ONCE - - TestCase "Call mock with argument works" - MOCK CALL VALUE-2 USING VALUE-1 - MOVE "From mocked PROG2" TO VALUE-1 - END-MOCK - PERFORM 700-MAKE-CALL - EXPECT VALUE-1 TO BE "From mocked PROG2" - EXPECT VALUE-2 TO BE "arg2" - VERIFY CALL VALUE-2 USING VALUE-1 - HAPPENED ONCE - - * Test for mocking call statements - * Writing a comment to test stuff - * - *Yeah - * - TestCase "Call mock with content reference for arguments work" - MOCK CALL 'PROG3' USING - BY CONTENT VALUE-1, - BY VALUE VALUE-2, - VALUE-3 - MOVE "content" TO VALUE-1 - MOVE "value" TO VALUE-2 - MOVE "reference" TO VALUE-3 - END-MOCK - PERFORM 800-MAKE-CALL - EXPECT VALUE-1 TO BE "content" - EXPECT VALUE-2 TO BE "value" - EXPECT VALUE-3 TO BE "reference" - VERIFY CALL 'PROG3' USING - BY CONTENT VALUE-1, - BY VALUE VALUE-2, - VALUE-3 - HAPPENED 2 TIMES - - TestCase "Paragraph mock is called and call mock is ignored" - MOCK CALL 'PROG3' USING - BY CONTENT VALUE-1, - BY VALUE VALUE-2, - VALUE-3 - MOVE "content" TO VALUE-1 - MOVE "value" TO VALUE-2 - MOVE "reference" TO VALUE-3 - END-MOCK - MOCK PARAGRAPH 800-MAKE-CALL - MOVE "overwritten" TO VALUE-1 - END-MOCK - MOVE "arg2" TO VALUE-2 - MOVE "arg3" TO VALUE-3 - PERFORM 800-MAKE-CALL - EXPECT VALUE-1 TO BE "overwritten" - EXPECT VALUE-2 TO BE "arg2" - EXPECT VALUE-3 TO BE "arg3" - VERIFY PARAGRAPH 800-MAKE-CALL HAPPENED ONCE - VERIFY CALL 'PROG3' USING - BY CONTENT VALUE-1, - BY VALUE VALUE-2, - VALUE-3 - NEVER HAPPENED - - TestCase "Global call mock is not overwritten by local call mock (Should fail)" - MOCK CALL 'PROG1' - MOVE "Local PROG1" TO VALUE-1 - END-MOCK - PERFORM 600-MAKE-CALL - EXPECT VALUE-1 TO BE "Global PROG1" - *From file: C:\Udvikler\Workspace\cobol-check-main\src\test\cobol\MOCKTEST\MockSectionsAndParagraphsTest.cut - TestSuite "Mock Sections And Paragraphs" - - MOCK SECTION 000-START - PERFORM 100-WELCOME - PERFORM 500-SWITCH - END-MOCK - - MOCK PARAGRAPH 300-CHANGE-1 - EVALUATE VALUE-1 - WHEN "Hello" - MOVE "MOCKED" TO VALUE-1 - WHEN OTHER - MOVE "mocked" TO VALUE-1 - END-EVALUATE - END-MOCK - - TestCase "Global mock behaves as intended" - PERFORM 000-START - Expect VALUE-1 to be "Hi" - Expect VALUE-2 to be "Hello" - VERIFY SECTION 000-START HAPPENED ONCE - VERIFY PARAGRAPH 300-CHANGE-1 HAPPENED ZERO TIMES - - TestCase "Local mock overwrites global mock" - MOCK SECTION 000-START - MOVE "This is" TO VALUE-1 - MOVE "a mock" TO VALUE-2 - END-MOCK - PERFORM 000-START - PERFORM 000-START - Expect VALUE-1 to be "This is" - Expect VALUE-2 to be "a mock" - VERIFY SECTION 000-START HAPPENED AT LEAST 2 TIMES - - TestCase "Multiple local mocks behaves as intended (First Verify should fail)" - MOCK SECTION 000-START - MOVE "This is" TO VALUE-1 - MOVE "a mock" TO VALUE-2 - PERFORM 100-WELCOME - PERFORM 100-WELCOME - PERFORM 100-WELCOME - END-MOCK - MOCK SECTION 100-WELCOME - MOVE "I'll leave VALUE-2 alone" TO VALUE-1 - END-MOCK - MOCK PARAGRAPH 500-SWITCH - END-MOCK - PERFORM 000-START - PERFORM 000-START - VERIFY SECTION 000-START HAPPENED 5 TIMES - Expect VALUE-1 to be "I'll leave VALUE-2 alone" - VERIFY SECTION 100-WELCOME HAPPENED NO MORE THAN 10 TIMES - VERIFY PARAGRAPH 500-SWITCH NEVER HAPPENED - Expect VALUE-2 to be "a mock" - - TestCase "Empty local mock makes section do nothing" - MOCK PARAGRAPH 500-SWITCH - END-MOCK - PERFORM 100-WELCOME - PERFORM 500-SWITCH - Expect VALUE-1 to be "Hello" - Expect VALUE-2 to be "Hi" - VERIFY PARAGRAPH 500-SWITCH HAPPENED ONCE - - TestCase "Local and global mocks can be used together" - MOCK SECTION 100-WELCOME - MOVE "Mockity-" TO VALUE-1 - MOVE "Mock" TO VALUE-2 - END-MOCK - PERFORM 000-START - Expect VALUE-1 to be "Mock" - Expect VALUE-2 to be "Mockity-" - - TestCase "If no local or global mock run source code" - PERFORM 100-WELCOME - Expect VALUE-1 to be "Hello" - Expect VALUE-2 to be "Hi" - - TestCase "Global paragraph mock works" - PERFORM 100-WELCOME - PERFORM 300-CHANGE-1 - Expect VALUE-1 to be "MOCKED" - Expect VALUE-2 to be "Hi" - - TestCase "Mock with EXIT SECTION in source works" - MOCK SECTION 400-CHANGE-2 - MOVE "Exit section is handled correctly" TO VALUE-1 - END-MOCK - PERFORM 400-CHANGE-2 - Expect VALUE-1 to be "Exit section is handled correctly" + *From file: C:\workspace\cobol-check\src\test\cobol\DB2PROG\DB2TEST.cut + TestSuite "Tests of DB2 includes" + + TestCase "DB2 Copybook added to PRG" + move "John" to FIRST-NAME + move "Doe" to LAST-NAME + Expect FIRST-NAME to be "John" + Expect LAST-NAME to be "Doe" diff --git a/CC##99.CBL b/CC##99.CBL index d78026bd..dc682c91 100644 --- a/CC##99.CBL +++ b/CC##99.CBL @@ -1,7 +1,7 @@ IDENTIFICATION DIVISION. - PROGRAM-ID. MOCKTEST. + PROGRAM-ID. DB2PROG. ***************************************************************** - * Program to exercise different mock statements and edge cases. + * Program to exercise DB2 instructions ***************************************************************** ENVIRONMENT DIVISION. INPUT-OUTPUT SECTION. @@ -136,1073 +136,75 @@ 15 UT-FILE-STATUS-FIELD-NAME PIC X(31). * CCHECKWS.CPY END - 01 FILLER. - 05 VALUE-1 PIC X(80). - 05 VALUE-2 PIC X(80). - 05 VALUE-3 PIC X(80). - 05 TEMP PIC X(80). - - 01 UT-MOCKS-GENERATED. - 05 UT-2-0-1-MOCK-COUNT PIC 9(18) VALUE ZERO COMP. - 05 UT-2-0-1-MOCK-EXPECTED PIC 9(18) VALUE ZERO COMP. - 05 UT-2-0-1-MOCK-NAME PIC X(40) - VALUE "SECTION 000-START". - 05 UT-2-0-2-MOCK-COUNT PIC 9(18) VALUE ZERO COMP. - 05 UT-2-0-2-MOCK-EXPECTED PIC 9(18) VALUE ZERO COMP. - 05 UT-2-0-2-MOCK-NAME PIC X(40) - VALUE "SECTION 100-WELCOME". - 05 UT-2-2-1-MOCK-COUNT PIC 9(18) VALUE ZERO COMP. - 05 UT-2-2-1-MOCK-EXPECTED PIC 9(18) VALUE ZERO COMP. - 05 UT-2-2-1-MOCK-NAME PIC X(40) - VALUE "SECTION 000-START". - 05 UT-2-2-2-MOCK-COUNT PIC 9(18) VALUE ZERO COMP. - 05 UT-2-2-2-MOCK-EXPECTED PIC 9(18) VALUE ZERO COMP. - 05 UT-2-2-2-MOCK-NAME PIC X(40) - VALUE "SECTION 100-WELCOME". - 05 UT-2-3-1-MOCK-COUNT PIC 9(18) VALUE ZERO COMP. - 05 UT-2-3-1-MOCK-EXPECTED PIC 9(18) VALUE ZERO COMP. - 05 UT-2-3-1-MOCK-NAME PIC X(40) - VALUE "SECTION 000-START". - 05 UT-2-3-2-MOCK-COUNT PIC 9(18) VALUE ZERO COMP. - 05 UT-2-3-2-MOCK-EXPECTED PIC 9(18) VALUE ZERO COMP. - 05 UT-2-3-2-MOCK-NAME PIC X(40) - VALUE "SECTION 100-WELCOME". - 05 UT-2-4-1-MOCK-COUNT PIC 9(18) VALUE ZERO COMP. - 05 UT-2-4-1-MOCK-EXPECTED PIC 9(18) VALUE ZERO COMP. - 05 UT-2-4-1-MOCK-NAME PIC X(40) - VALUE "SECTION 000-START". - 05 UT-2-4-2-MOCK-COUNT PIC 9(18) VALUE ZERO COMP. - 05 UT-2-4-2-MOCK-EXPECTED PIC 9(18) VALUE ZERO COMP. - 05 UT-2-4-2-MOCK-NAME PIC X(40) - VALUE "SECTION 100-WELCOME". - 05 UT-5-0-1-MOCK-COUNT PIC 9(18) VALUE ZERO COMP. - 05 UT-5-0-1-MOCK-EXPECTED PIC 9(18) VALUE ZERO COMP. - 05 UT-5-0-1-MOCK-NAME PIC X(40) - VALUE "CALL 'PROG1'". - 05 UT-5-1-1-MOCK-COUNT PIC 9(18) VALUE ZERO COMP. - 05 UT-5-1-1-MOCK-EXPECTED PIC 9(18) VALUE ZERO COMP. - 05 UT-5-1-1-MOCK-NAME PIC X(40) - VALUE "CALL 'PROG1'". - 05 UT-5-3-1-MOCK-COUNT PIC 9(18) VALUE ZERO COMP. - 05 UT-5-3-1-MOCK-EXPECTED PIC 9(18) VALUE ZERO COMP. - 05 UT-5-3-1-MOCK-NAME PIC X(40) - VALUE "CALL VALUE-2". - 05 UT-5-4-1-MOCK-COUNT PIC 9(18) VALUE ZERO COMP. - 05 UT-5-4-1-MOCK-EXPECTED PIC 9(18) VALUE ZERO COMP. - 05 UT-5-4-1-MOCK-NAME PIC X(40) - VALUE "CALL 'PROG3'". - 05 UT-5-5-1-MOCK-COUNT PIC 9(18) VALUE ZERO COMP. - 05 UT-5-5-1-MOCK-EXPECTED PIC 9(18) VALUE ZERO COMP. - 05 UT-5-5-1-MOCK-NAME PIC X(40) - VALUE "CALL 'PROG3'". - 05 UT-5-5-2-MOCK-COUNT PIC 9(18) VALUE ZERO COMP. - 05 UT-5-5-2-MOCK-EXPECTED PIC 9(18) VALUE ZERO COMP. - 05 UT-5-5-2-MOCK-NAME PIC X(40) - VALUE "PARAGRAPH 800-MAKE-CALL". - 05 UT-5-6-1-MOCK-COUNT PIC 9(18) VALUE ZERO COMP. - 05 UT-5-6-1-MOCK-EXPECTED PIC 9(18) VALUE ZERO COMP. - 05 UT-5-6-1-MOCK-NAME PIC X(40) - VALUE "CALL 'PROG1'". - 05 UT-6-0-1-MOCK-COUNT PIC 9(18) VALUE ZERO COMP. - 05 UT-6-0-1-MOCK-EXPECTED PIC 9(18) VALUE ZERO COMP. - 05 UT-6-0-1-MOCK-NAME PIC X(40) - VALUE "SECTION 000-START". - 05 UT-6-0-2-MOCK-COUNT PIC 9(18) VALUE ZERO COMP. - 05 UT-6-0-2-MOCK-EXPECTED PIC 9(18) VALUE ZERO COMP. - 05 UT-6-0-2-MOCK-NAME PIC X(40) - VALUE "PARAGRAPH 300-CHANGE-1". - 05 UT-6-2-1-MOCK-COUNT PIC 9(18) VALUE ZERO COMP. - 05 UT-6-2-1-MOCK-EXPECTED PIC 9(18) VALUE ZERO COMP. - 05 UT-6-2-1-MOCK-NAME PIC X(40) - VALUE "SECTION 000-START". - 05 UT-6-3-1-MOCK-COUNT PIC 9(18) VALUE ZERO COMP. - 05 UT-6-3-1-MOCK-EXPECTED PIC 9(18) VALUE ZERO COMP. - 05 UT-6-3-1-MOCK-NAME PIC X(40) - VALUE "SECTION 000-START". - 05 UT-6-3-2-MOCK-COUNT PIC 9(18) VALUE ZERO COMP. - 05 UT-6-3-2-MOCK-EXPECTED PIC 9(18) VALUE ZERO COMP. - 05 UT-6-3-2-MOCK-NAME PIC X(40) - VALUE "SECTION 100-WELCOME". - 05 UT-6-3-3-MOCK-COUNT PIC 9(18) VALUE ZERO COMP. - 05 UT-6-3-3-MOCK-EXPECTED PIC 9(18) VALUE ZERO COMP. - 05 UT-6-3-3-MOCK-NAME PIC X(40) - VALUE "PARAGRAPH 500-SWITCH". - 05 UT-6-4-1-MOCK-COUNT PIC 9(18) VALUE ZERO COMP. - 05 UT-6-4-1-MOCK-EXPECTED PIC 9(18) VALUE ZERO COMP. - 05 UT-6-4-1-MOCK-NAME PIC X(40) - VALUE "PARAGRAPH 500-SWITCH". - 05 UT-6-5-1-MOCK-COUNT PIC 9(18) VALUE ZERO COMP. - 05 UT-6-5-1-MOCK-EXPECTED PIC 9(18) VALUE ZERO COMP. - 05 UT-6-5-1-MOCK-NAME PIC X(40) - VALUE "SECTION 100-WELCOME". - 05 UT-6-8-1-MOCK-COUNT PIC 9(18) VALUE ZERO COMP. - 05 UT-6-8-1-MOCK-EXPECTED PIC 9(18) VALUE ZERO COMP. - 05 UT-6-8-1-MOCK-NAME PIC X(40) - VALUE "SECTION 400-CHANGE-2". - PROCEDURE DIVISION. - PERFORM UT-INITIALIZE - *============= "Before and after tests 1" =============* - DISPLAY "TESTSUITE:" - DISPLAY "Before and after tests 1" - MOVE "Before and after tests 1" - TO UT-TEST-SUITE-NAME - *-------- "Before sets value" - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-BEFORE-EACH - MOVE "Before sets value" - TO UT-TEST-CASE-NAME - PERFORM UT-INITIALIZE-MOCK-COUNT - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-1 TO UT-ACTUAL - MOVE "prepare" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-AFTER-EACH - *-------- "After sets value" - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-BEFORE-EACH - MOVE "After sets value" - TO UT-TEST-CASE-NAME - PERFORM UT-INITIALIZE-MOCK-COUNT - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-2 TO UT-ACTUAL - MOVE "clean" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-AFTER-EACH - *-------- "Before happens before Testcase" - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-BEFORE-EACH - MOVE "Before happens before Testcase" - TO UT-TEST-CASE-NAME - PERFORM UT-INITIALIZE-MOCK-COUNT - MOVE "during" TO VALUE-1 - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-1 TO UT-ACTUAL - MOVE "during" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-AFTER-EACH - *-------- "After happens after Testcase (part 1)" - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-BEFORE-EACH - MOVE "After happens after Testcase (part 1)" - TO UT-TEST-CASE-NAME - PERFORM UT-INITIALIZE-MOCK-COUNT - MOVE "during" TO VALUE-2 - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-2 TO UT-ACTUAL - MOVE "during" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-AFTER-EACH - *-------- "After happens after Testcase (part 2)" - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-BEFORE-EACH - MOVE "After happens after Testcase (part 2)" - TO UT-TEST-CASE-NAME - PERFORM UT-INITIALIZE-MOCK-COUNT - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-2 TO UT-ACTUAL - MOVE "clean" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-AFTER-EACH - *============= "Before and after tests 2" =============* - DISPLAY "TESTSUITE:" - DISPLAY "Before and after tests 2" - MOVE "Before and after tests 2" - TO UT-TEST-SUITE-NAME - *-------- "Performs of mocked items does not influence count" - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-BEFORE-EACH - MOVE "Performs of mocked items does not influence count" - TO UT-TEST-CASE-NAME - PERFORM UT-INITIALIZE-MOCK-COUNT - MOVE 0 TO UT-2-0-1-MOCK-EXPECTED - MOVE UT-2-0-1-MOCK-COUNT TO UT-ACTUAL-ACCESSES - MOVE UT-2-0-1-MOCK-EXPECTED TO UT-EXPECTED-ACCESSES - MOVE UT-2-0-1-MOCK-NAME TO UT-MOCK-OPERATION - SET UT-VERIFY-EXACT TO TRUE - ADD 1 TO UT-TEST-CASE-COUNT - PERFORM UT-ASSERT-ACCESSES - MOVE 0 TO UT-2-0-2-MOCK-EXPECTED - MOVE UT-2-0-2-MOCK-COUNT TO UT-ACTUAL-ACCESSES - MOVE UT-2-0-2-MOCK-EXPECTED TO UT-EXPECTED-ACCESSES - MOVE UT-2-0-2-MOCK-NAME TO UT-MOCK-OPERATION - SET UT-VERIFY-EXACT TO TRUE - ADD 1 TO UT-TEST-CASE-COUNT - PERFORM UT-ASSERT-ACCESSES - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-AFTER-EACH - *-------- "Only global mocks apply in before/after (part 1)" - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-BEFORE-EACH - MOVE "Only global mocks apply in before/after (part 1)" - TO UT-TEST-CASE-NAME - PERFORM UT-INITIALIZE-MOCK-COUNT - MOVE "arg3" TO VALUE-3 - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-1 TO UT-ACTUAL - MOVE "GlobalMockedSection1" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-2 TO UT-ACTUAL - MOVE "before2" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-3 TO UT-ACTUAL - MOVE "arg3" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-AFTER-EACH - *-------- "Only global mocks apply in before/after (part 2)" - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-BEFORE-EACH - MOVE "Only global mocks apply in before/after (part 2)" - TO UT-TEST-CASE-NAME - PERFORM UT-INITIALIZE-MOCK-COUNT - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-1 TO UT-ACTUAL - MOVE "GlobalMockedSection1" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-2 TO UT-ACTUAL - MOVE "before2" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-3 TO UT-ACTUAL - MOVE "GlobalMockedSection2" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-AFTER-EACH - *-------- "Only global mocks apply in before/after (part 3)" - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-BEFORE-EACH - MOVE "Only global mocks apply in before/after (part 3)" - TO UT-TEST-CASE-NAME - PERFORM UT-INITIALIZE-MOCK-COUNT - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-1 TO UT-ACTUAL - MOVE "GlobalMockedSection1" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-2 TO UT-ACTUAL - MOVE "before2" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-3 TO UT-ACTUAL - MOVE "GlobalMockedSection2" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-AFTER-EACH - *============= "Before and after tests 3" =============* - DISPLAY "TESTSUITE:" - DISPLAY "Before and after tests 3" - MOVE "Before and after tests 3" - TO UT-TEST-SUITE-NAME - *-------- "Before proceeds after from last testcase (part 1)" - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-BEFORE-EACH - MOVE "Before proceeds after from last testcase (part 1)" - TO UT-TEST-CASE-NAME - PERFORM UT-INITIALIZE-MOCK-COUNT - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-1 TO UT-ACTUAL - MOVE "before" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-AFTER-EACH - *-------- "Before proceeds after from last testcase (part 2)" - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-BEFORE-EACH - MOVE "Before proceeds after from last testcase (part 2)" - TO UT-TEST-CASE-NAME - PERFORM UT-INITIALIZE-MOCK-COUNT - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-1 TO UT-ACTUAL - MOVE "before" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-AFTER-EACH - *============= "General tests" =============* - DISPLAY "TESTSUITE:" - DISPLAY "General tests" - MOVE "General tests" - TO UT-TEST-SUITE-NAME - *-------- "No Expect or Verify" - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-BEFORE-EACH - MOVE "No Expect or Verify" - TO UT-TEST-CASE-NAME - PERFORM UT-INITIALIZE-MOCK-COUNT - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-AFTER-EACH - *-------- "Welcome section performs as intended" - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-BEFORE-EACH - MOVE "Welcome section performs as intended" - TO UT-TEST-CASE-NAME - PERFORM UT-INITIALIZE-MOCK-COUNT - PERFORM 100-WELCOME - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-1 TO UT-ACTUAL - MOVE "Hello" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-2 TO UT-ACTUAL - MOVE "Hi" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-AFTER-EACH - *-------- "Goodbye section performs as intended" - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-BEFORE-EACH - MOVE "Goodbye section performs as intended" - TO UT-TEST-CASE-NAME - PERFORM UT-INITIALIZE-MOCK-COUNT - PERFORM 200-GOODBYE - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-1 TO UT-ACTUAL - MOVE "Bye" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-2 TO UT-ACTUAL - MOVE "See you" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-AFTER-EACH - *-------- "Change-1 changes hello to bye" - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-BEFORE-EACH - MOVE "Change-1 changes hello to bye" - TO UT-TEST-CASE-NAME - PERFORM UT-INITIALIZE-MOCK-COUNT - PERFORM 100-WELCOME - PERFORM 300-CHANGE-1 - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-1 TO UT-ACTUAL - MOVE "Bye" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-2 TO UT-ACTUAL - MOVE "Hi" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-AFTER-EACH - *-------- "Change-1 changes bye to hello" - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-BEFORE-EACH - MOVE "Change-1 changes bye to hello" - TO UT-TEST-CASE-NAME - PERFORM UT-INITIALIZE-MOCK-COUNT - PERFORM 200-GOODBYE - PERFORM 300-CHANGE-1 - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-1 TO UT-ACTUAL - MOVE "Hello" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-2 TO UT-ACTUAL - MOVE "See you" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-AFTER-EACH - *-------- "Change-2 changes hi to see you" - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-BEFORE-EACH - MOVE "Change-2 changes hi to see you" - TO UT-TEST-CASE-NAME - PERFORM UT-INITIALIZE-MOCK-COUNT - PERFORM 100-WELCOME - PERFORM 400-CHANGE-2 - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-1 TO UT-ACTUAL - MOVE "Hello" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-2 TO UT-ACTUAL - MOVE "See you" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-AFTER-EACH - *-------- "Change-2 changes see you to hi" - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-BEFORE-EACH - MOVE "Change-2 changes see you to hi" - TO UT-TEST-CASE-NAME - PERFORM UT-INITIALIZE-MOCK-COUNT - PERFORM 200-GOODBYE - PERFORM 400-CHANGE-2 - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-1 TO UT-ACTUAL - MOVE "Bye" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-2 TO UT-ACTUAL - MOVE "Hi" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-AFTER-EACH - *-------- "Switches values" - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-BEFORE-EACH - MOVE "Switches values" - TO UT-TEST-CASE-NAME - PERFORM UT-INITIALIZE-MOCK-COUNT - PERFORM 100-WELCOME - PERFORM 500-SWITCH - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-1 TO UT-ACTUAL - MOVE "Hi" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-2 TO UT-ACTUAL - MOVE "Hello" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-AFTER-EACH - *============= "Mock Call statements test" =============* - DISPLAY "TESTSUITE:" - DISPLAY "Mock Call statements test" - MOVE "Mock Call statements test" - TO UT-TEST-SUITE-NAME - *-------- "Simple call mock works" - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-BEFORE-EACH - MOVE "Simple call mock works" - TO UT-TEST-CASE-NAME - PERFORM UT-INITIALIZE-MOCK-COUNT - PERFORM 600-MAKE-CALL - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-1 TO UT-ACTUAL - MOVE "From mocked PROG1" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-2 TO UT-ACTUAL - MOVE "arg2" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - MOVE 1 TO UT-5-1-1-MOCK-EXPECTED - MOVE UT-5-1-1-MOCK-COUNT TO UT-ACTUAL-ACCESSES - MOVE UT-5-1-1-MOCK-EXPECTED TO UT-EXPECTED-ACCESSES - MOVE UT-5-1-1-MOCK-NAME TO UT-MOCK-OPERATION - SET UT-VERIFY-EXACT TO TRUE - ADD 1 TO UT-TEST-CASE-COUNT - PERFORM UT-ASSERT-ACCESSES - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-AFTER-EACH - *-------- "Simple global call mock works" - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-BEFORE-EACH - MOVE "Simple global call mock works" - TO UT-TEST-CASE-NAME - PERFORM UT-INITIALIZE-MOCK-COUNT - PERFORM 600-MAKE-CALL - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-1 TO UT-ACTUAL - MOVE "Global PROG1" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-2 TO UT-ACTUAL - MOVE "arg2" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - MOVE 1 TO UT-5-0-1-MOCK-EXPECTED - MOVE UT-5-0-1-MOCK-COUNT TO UT-ACTUAL-ACCESSES - MOVE UT-5-0-1-MOCK-EXPECTED TO UT-EXPECTED-ACCESSES - MOVE UT-5-0-1-MOCK-NAME TO UT-MOCK-OPERATION - SET UT-VERIFY-EXACT TO TRUE - ADD 1 TO UT-TEST-CASE-COUNT - PERFORM UT-ASSERT-ACCESSES - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-AFTER-EACH - *-------- "Call mock with argument works" - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-BEFORE-EACH - MOVE "Call mock with argument works" - TO UT-TEST-CASE-NAME - PERFORM UT-INITIALIZE-MOCK-COUNT - PERFORM 700-MAKE-CALL - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-1 TO UT-ACTUAL - MOVE "From mocked PROG2" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-2 TO UT-ACTUAL - MOVE "arg2" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - MOVE 1 TO UT-5-3-1-MOCK-EXPECTED - MOVE UT-5-3-1-MOCK-COUNT TO UT-ACTUAL-ACCESSES - MOVE UT-5-3-1-MOCK-EXPECTED TO UT-EXPECTED-ACCESSES - MOVE UT-5-3-1-MOCK-NAME TO UT-MOCK-OPERATION - SET UT-VERIFY-EXACT TO TRUE - ADD 1 TO UT-TEST-CASE-COUNT - PERFORM UT-ASSERT-ACCESSES - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-AFTER-EACH - *-------- "Call mock with content reference for arguments work" - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-BEFORE-EACH - MOVE "Call mock with content reference for arguments work" - TO UT-TEST-CASE-NAME - PERFORM UT-INITIALIZE-MOCK-COUNT - PERFORM 800-MAKE-CALL - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-1 TO UT-ACTUAL - MOVE "content" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-2 TO UT-ACTUAL - MOVE "value" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-3 TO UT-ACTUAL - MOVE "reference" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - MOVE 2 TO UT-5-4-1-MOCK-EXPECTED - MOVE UT-5-4-1-MOCK-COUNT TO UT-ACTUAL-ACCESSES - MOVE UT-5-4-1-MOCK-EXPECTED TO UT-EXPECTED-ACCESSES - MOVE UT-5-4-1-MOCK-NAME TO UT-MOCK-OPERATION - SET UT-VERIFY-EXACT TO TRUE - ADD 1 TO UT-TEST-CASE-COUNT - PERFORM UT-ASSERT-ACCESSES - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-AFTER-EACH - *-------- "Paragraph mock is called and call mock is ignored" - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-BEFORE-EACH - MOVE "Paragraph mock is called and call mock is ignored" - TO UT-TEST-CASE-NAME - PERFORM UT-INITIALIZE-MOCK-COUNT - MOVE "arg2" TO VALUE-2 - MOVE "arg3" TO VALUE-3 - PERFORM 800-MAKE-CALL - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-1 TO UT-ACTUAL - MOVE "overwritten" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-2 TO UT-ACTUAL - MOVE "arg2" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-3 TO UT-ACTUAL - MOVE "arg3" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - MOVE 1 TO UT-5-5-2-MOCK-EXPECTED - MOVE UT-5-5-2-MOCK-COUNT TO UT-ACTUAL-ACCESSES - MOVE UT-5-5-2-MOCK-EXPECTED TO UT-EXPECTED-ACCESSES - MOVE UT-5-5-2-MOCK-NAME TO UT-MOCK-OPERATION - SET UT-VERIFY-EXACT TO TRUE - ADD 1 TO UT-TEST-CASE-COUNT - PERFORM UT-ASSERT-ACCESSES - MOVE 0 TO UT-5-5-1-MOCK-EXPECTED - MOVE UT-5-5-1-MOCK-COUNT TO UT-ACTUAL-ACCESSES - MOVE UT-5-5-1-MOCK-EXPECTED TO UT-EXPECTED-ACCESSES - MOVE UT-5-5-1-MOCK-NAME TO UT-MOCK-OPERATION - SET UT-VERIFY-EXACT TO TRUE - ADD 1 TO UT-TEST-CASE-COUNT - PERFORM UT-ASSERT-ACCESSES - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-AFTER-EACH - *-------- "Global call mock is not overwritten by local call mock - * (Should fail)" - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-BEFORE-EACH - MOVE "Global call mock is not overwritten by local call mock - - "(Should fail)" - TO UT-TEST-CASE-NAME - PERFORM UT-INITIALIZE-MOCK-COUNT - PERFORM 600-MAKE-CALL - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-1 TO UT-ACTUAL - MOVE "Global PROG1" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-AFTER-EACH - *============= "Mock Sections And Paragraphs" =============* - DISPLAY "TESTSUITE:" - DISPLAY "Mock Sections And Paragraphs" - MOVE "Mock Sections And Paragraphs" - TO UT-TEST-SUITE-NAME - *-------- "Global mock behaves as intended" - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-BEFORE-EACH - MOVE "Global mock behaves as intended" - TO UT-TEST-CASE-NAME - PERFORM UT-INITIALIZE-MOCK-COUNT - PERFORM 000-START - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-1 TO UT-ACTUAL - MOVE "Hi" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-2 TO UT-ACTUAL - MOVE "Hello" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - MOVE 1 TO UT-6-0-1-MOCK-EXPECTED - MOVE UT-6-0-1-MOCK-COUNT TO UT-ACTUAL-ACCESSES - MOVE UT-6-0-1-MOCK-EXPECTED TO UT-EXPECTED-ACCESSES - MOVE UT-6-0-1-MOCK-NAME TO UT-MOCK-OPERATION - SET UT-VERIFY-EXACT TO TRUE - ADD 1 TO UT-TEST-CASE-COUNT - PERFORM UT-ASSERT-ACCESSES - MOVE ZERO TO UT-6-0-2-MOCK-EXPECTED - MOVE UT-6-0-2-MOCK-COUNT TO UT-ACTUAL-ACCESSES - MOVE UT-6-0-2-MOCK-EXPECTED TO UT-EXPECTED-ACCESSES - MOVE UT-6-0-2-MOCK-NAME TO UT-MOCK-OPERATION - SET UT-VERIFY-EXACT TO TRUE - ADD 1 TO UT-TEST-CASE-COUNT - PERFORM UT-ASSERT-ACCESSES - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-AFTER-EACH - *-------- "Local mock overwrites global mock" - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-BEFORE-EACH - MOVE "Local mock overwrites global mock" - TO UT-TEST-CASE-NAME - PERFORM UT-INITIALIZE-MOCK-COUNT - PERFORM 000-START - PERFORM 000-START - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-1 TO UT-ACTUAL - MOVE "This is" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-2 TO UT-ACTUAL - MOVE "a mock" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - MOVE 2 TO UT-6-2-1-MOCK-EXPECTED - MOVE UT-6-2-1-MOCK-COUNT TO UT-ACTUAL-ACCESSES - MOVE UT-6-2-1-MOCK-EXPECTED TO UT-EXPECTED-ACCESSES - MOVE UT-6-2-1-MOCK-NAME TO UT-MOCK-OPERATION - SET UT-VERIFY-AT-LEAST TO TRUE - ADD 1 TO UT-TEST-CASE-COUNT - PERFORM UT-ASSERT-ACCESSES - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-AFTER-EACH - *-------- "Multiple local mocks behaves as intended (First Verify - * should fail)" - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-BEFORE-EACH - MOVE "Multiple local mocks behaves as intended (First Verify - - "should fail)" - TO UT-TEST-CASE-NAME - PERFORM UT-INITIALIZE-MOCK-COUNT - PERFORM 000-START - PERFORM 000-START - MOVE 5 TO UT-6-3-1-MOCK-EXPECTED - MOVE UT-6-3-1-MOCK-COUNT TO UT-ACTUAL-ACCESSES - MOVE UT-6-3-1-MOCK-EXPECTED TO UT-EXPECTED-ACCESSES - MOVE UT-6-3-1-MOCK-NAME TO UT-MOCK-OPERATION - SET UT-VERIFY-EXACT TO TRUE - ADD 1 TO UT-TEST-CASE-COUNT - PERFORM UT-ASSERT-ACCESSES - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-1 TO UT-ACTUAL - MOVE "I'll leave VALUE-2 alone" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - MOVE 10 TO UT-6-3-2-MOCK-EXPECTED - MOVE UT-6-3-2-MOCK-COUNT TO UT-ACTUAL-ACCESSES - MOVE UT-6-3-2-MOCK-EXPECTED TO UT-EXPECTED-ACCESSES - MOVE UT-6-3-2-MOCK-NAME TO UT-MOCK-OPERATION - SET UT-VERIFY-NO-MORE-THAN TO TRUE - ADD 1 TO UT-TEST-CASE-COUNT - PERFORM UT-ASSERT-ACCESSES - MOVE 0 TO UT-6-3-3-MOCK-EXPECTED - MOVE UT-6-3-3-MOCK-COUNT TO UT-ACTUAL-ACCESSES - MOVE UT-6-3-3-MOCK-EXPECTED TO UT-EXPECTED-ACCESSES - MOVE UT-6-3-3-MOCK-NAME TO UT-MOCK-OPERATION - SET UT-VERIFY-EXACT TO TRUE - ADD 1 TO UT-TEST-CASE-COUNT - PERFORM UT-ASSERT-ACCESSES - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-2 TO UT-ACTUAL - MOVE "a mock" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-AFTER-EACH - *-------- "Empty local mock makes section do nothing" - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-BEFORE-EACH - MOVE "Empty local mock makes section do nothing" - TO UT-TEST-CASE-NAME - PERFORM UT-INITIALIZE-MOCK-COUNT - PERFORM 100-WELCOME - PERFORM 500-SWITCH - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-1 TO UT-ACTUAL - MOVE "Hello" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-2 TO UT-ACTUAL - MOVE "Hi" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - MOVE 1 TO UT-6-4-1-MOCK-EXPECTED - MOVE UT-6-4-1-MOCK-COUNT TO UT-ACTUAL-ACCESSES - MOVE UT-6-4-1-MOCK-EXPECTED TO UT-EXPECTED-ACCESSES - MOVE UT-6-4-1-MOCK-NAME TO UT-MOCK-OPERATION - SET UT-VERIFY-EXACT TO TRUE - ADD 1 TO UT-TEST-CASE-COUNT - PERFORM UT-ASSERT-ACCESSES - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-AFTER-EACH - *-------- "Local and global mocks can be used together" - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-BEFORE-EACH - MOVE "Local and global mocks can be used together" - TO UT-TEST-CASE-NAME - PERFORM UT-INITIALIZE-MOCK-COUNT - PERFORM 000-START - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-1 TO UT-ACTUAL - MOVE "Mock" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-2 TO UT-ACTUAL - MOVE "Mockity-" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-AFTER-EACH - *-------- "If no local or global mock run source code" - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-BEFORE-EACH - MOVE "If no local or global mock run source code" - TO UT-TEST-CASE-NAME - PERFORM UT-INITIALIZE-MOCK-COUNT - PERFORM 100-WELCOME - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-1 TO UT-ACTUAL - MOVE "Hello" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-2 TO UT-ACTUAL - MOVE "Hi" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-AFTER-EACH - *-------- "Global paragraph mock works" + + 01 FILLER. + 05 WS-FIELD-1 PIC X(80). + 05 ws-Field-2 PIC X(80). + + + *EXEC SQL INCLUDE SQLCA END-EXEC. + *EXEC SQL INCLUDE TEXEM END-EXEC. + + * EXEC SQL DECLARE NAME-CUR CURSOR FOR SELECT FIRST_NAME, LAS + * T_NAME FROM TEXEM END-EXEC. + + 01 SQLCA. + 03 SQLCAID PIC X(8) VALUE "SQLCA ". + 03 SQLCABC USAGE BINARY-LONG VALUE 136. + 03 SQLCODE USAGE BINARY-LONG VALUE 0. + 03 SQLERRM. + 05 SQLERRML USAGE BINARY-SHORT. + 05 SQLERRMC PIC X(70). + 03 SQLERRP PIC X(8). + 03 SQLERRD USAGE BINARY-LONG OCCURS 6. + 03 SQLWARN. + 05 SQLWARN0 PIC X. + 05 SQLWARN1 PIC X. + 05 SQLWARN2 PIC X. + 05 SQLWARN3 PIC X. + 05 SQLWARN4 PIC X. + 05 SQLWARN5 PIC X. + 05 SQLWARN6 PIC X. + 05 SQLWARN7 PIC X. + 05 SQLWARN8 PIC X. + 05 SQLWARN9 PIC X. + 05 SQLWARN10 PIC X. + 05 SQLWARNA REDEFINES SQLWARN10 PIC X. + 03 SQLSTATE PIC X(5). + 03 FILLER PIC X(21). + 01 TEXEM. + 10 FIRST-NAME PIC X(10). + 10 LAST-NAME PIC X(10). + 10 TMS-CREA PIC X(26). + PROCEDURE DIVISION. + PERFORM UT-INITIALIZE + *============= "Tests of DB2 includes" =============* + DISPLAY "TESTSUITE:" + DISPLAY "Tests of DB2 includes" + MOVE "Tests of DB2 includes" + TO UT-TEST-SUITE-NAME + *-------- "DB2 Copybook added to PRG" MOVE SPACES TO UT-TEST-CASE-NAME PERFORM UT-BEFORE-EACH - MOVE "Global paragraph mock works" + MOVE "DB2 Copybook added to PRG" TO UT-TEST-CASE-NAME PERFORM UT-INITIALIZE-MOCK-COUNT - PERFORM 100-WELCOME - PERFORM 300-CHANGE-1 - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-1 TO UT-ACTUAL - MOVE "MOCKED" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION + MOVE "John" TO FIRST-NAME + MOVE "Doe" TO LAST-NAME ADD 1 TO UT-TEST-CASE-COUNT SET UT-NORMAL-COMPARE TO TRUE SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-2 TO UT-ACTUAL - MOVE "Hi" + MOVE FIRST-NAME TO UT-ACTUAL + MOVE "John" TO UT-EXPECTED SET UT-RELATION-EQ TO TRUE PERFORM UT-CHECK-EXPECTATION - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-AFTER-EACH - *-------- "Mock with EXIT SECTION in source works" - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-BEFORE-EACH - MOVE "Mock with EXIT SECTION in source works" - TO UT-TEST-CASE-NAME - PERFORM UT-INITIALIZE-MOCK-COUNT - PERFORM 400-CHANGE-2 ADD 1 TO UT-TEST-CASE-COUNT SET UT-NORMAL-COMPARE TO TRUE SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE VALUE-1 TO UT-ACTUAL - MOVE "Exit section is handled correctly" + MOVE LAST-NAME TO UT-ACTUAL + MOVE "Doe" TO UT-EXPECTED SET UT-RELATION-EQ TO TRUE PERFORM UT-CHECK-EXPECTATION @@ -1226,355 +228,21 @@ ***************************************************************** *This is performed before each Test Case ***************************************************************** - EVALUATE UT-TEST-SUITE-NAME - WHEN "Before and after tests 1" - PERFORM UT-BEFORE-EACH-BRANCH-1 - WHEN "Before and after tests 2" - PERFORM UT-BEFORE-EACH-BRANCH-2 - WHEN "Before and after tests 3" - PERFORM UT-BEFORE-EACH-BRANCH-3 - END-EVALUATE + CONTINUE . UT-AFTER-EACH. ***************************************************************** *This is performed after each Test Case ***************************************************************** - EVALUATE UT-TEST-SUITE-NAME - WHEN "Before and after tests 1" - PERFORM UT-AFTER-EACH-BRANCH-1 - WHEN "Before and after tests 2" - PERFORM UT-AFTER-EACH-BRANCH-2 - WHEN "Before and after tests 3" - PERFORM UT-AFTER-EACH-BRANCH-3 - END-EVALUATE - . - - UT-BEFORE-EACH-BRANCH-1. - ***************************************************************** - *Called before Test Cases in Test Suite: - *"Before and after tests 1" - ***************************************************************** - MOVE "prepare" TO VALUE-1 - . - - UT-BEFORE-EACH-BRANCH-2. - ***************************************************************** - *Called before Test Cases in Test Suite: - *"Before and after tests 2" - ***************************************************************** - MOVE "before1" TO VALUE-1 - MOVE "before2" TO VALUE-2 - PERFORM 000-START - . - - UT-BEFORE-EACH-BRANCH-3. - ***************************************************************** - *Called before Test Cases in Test Suite: - *"Before and after tests 3" - ***************************************************************** - MOVE "before" TO VALUE-1 - . - - UT-AFTER-EACH-BRANCH-1. - ***************************************************************** - *Called after Test Cases in Test Suite: - *"Before and after tests 1" - ***************************************************************** - MOVE "clean" TO VALUE-2 - . - - UT-AFTER-EACH-BRANCH-2. - ***************************************************************** - *Called after Test Cases in Test Suite: - *"Before and after tests 2" - ***************************************************************** - MOVE "clean up" TO VALUE-3 - PERFORM 100-WELCOME - . - - UT-AFTER-EACH-BRANCH-3. - ***************************************************************** - *Called after Test Cases in Test Suite: - *"Before and after tests 3" - ***************************************************************** - MOVE "after" TO VALUE-1 + CONTINUE . UT-INITIALIZE-MOCK-COUNT. ***************************************************************** *Sets all global mock counters and expected count to 0 ***************************************************************** - MOVE 0 TO UT-2-0-1-MOCK-COUNT - MOVE 0 TO UT-2-0-1-MOCK-EXPECTED - MOVE 0 TO UT-2-0-2-MOCK-COUNT - MOVE 0 TO UT-2-0-2-MOCK-EXPECTED - MOVE 0 TO UT-5-0-1-MOCK-COUNT - MOVE 0 TO UT-5-0-1-MOCK-EXPECTED - MOVE 0 TO UT-6-0-1-MOCK-COUNT - MOVE 0 TO UT-6-0-1-MOCK-EXPECTED - MOVE 0 TO UT-6-0-2-MOCK-COUNT - MOVE 0 TO UT-6-0-2-MOCK-EXPECTED - . - - ***************************************************************** - *Paragraphs called when mocking - ***************************************************************** - UT-2-0-1-MOCK. - ***************************************************************** - *Global mock of: SECTION: 000-START - *In testsuite: "Before and after tests 2" - ***************************************************************** - ADD 1 TO UT-2-0-1-MOCK-COUNT - MOVE "GlobalMockedSection1" TO VALUE-1 - . - - UT-2-0-2-MOCK. - ***************************************************************** - *Global mock of: SECTION: 100-WELCOME - *In testsuite: "Before and after tests 2" - ***************************************************************** - ADD 1 TO UT-2-0-2-MOCK-COUNT - MOVE "GlobalMockedSection2" TO VALUE-3 - . - - UT-2-2-1-MOCK. - ***************************************************************** - *Local mock of: SECTION: 000-START - *In testsuite: "Before and after tests 2" - *In testcase: "Only global mocks apply in before/after (part 1)" - ***************************************************************** - ADD 1 TO UT-2-2-1-MOCK-COUNT - MOVE "LocalMockedSection1" TO VALUE-1 - . - - UT-2-2-2-MOCK. - ***************************************************************** - *Local mock of: SECTION: 100-WELCOME - *In testsuite: "Before and after tests 2" - *In testcase: "Only global mocks apply in before/after (part 1)" - ***************************************************************** - ADD 1 TO UT-2-2-2-MOCK-COUNT - MOVE "LocalMockedSection2" TO VALUE-3 - . - - UT-2-3-1-MOCK. - ***************************************************************** - *Local mock of: SECTION: 000-START - *In testsuite: "Before and after tests 2" - *In testcase: "Only global mocks apply in before/after (part 2)" - ***************************************************************** - ADD 1 TO UT-2-3-1-MOCK-COUNT - MOVE "LocalMockedSection1" TO VALUE-1 - . - - UT-2-3-2-MOCK. - ***************************************************************** - *Local mock of: SECTION: 100-WELCOME - *In testsuite: "Before and after tests 2" - *In testcase: "Only global mocks apply in before/after (part 2)" - ***************************************************************** - ADD 1 TO UT-2-3-2-MOCK-COUNT - MOVE "LocalMockedSection2" TO VALUE-3 - . - - UT-2-4-1-MOCK. - ***************************************************************** - *Local mock of: SECTION: 000-START - *In testsuite: "Before and after tests 2" - *In testcase: "Only global mocks apply in before/after (part 3)" - ***************************************************************** - ADD 1 TO UT-2-4-1-MOCK-COUNT - MOVE "LocalMockedSection1" TO VALUE-1 - . - - UT-2-4-2-MOCK. - ***************************************************************** - *Local mock of: SECTION: 100-WELCOME - *In testsuite: "Before and after tests 2" - *In testcase: "Only global mocks apply in before/after (part 3)" - ***************************************************************** - ADD 1 TO UT-2-4-2-MOCK-COUNT - MOVE "LocalMockedSection2" TO VALUE-3 - . - - UT-5-0-1-MOCK. - ***************************************************************** - *Global mock of: CALL: 'PROG1' - *In testsuite: "Mock Call statements test" - ***************************************************************** - ADD 1 TO UT-5-0-1-MOCK-COUNT - MOVE "Global PROG1" TO VALUE-1 - . - - UT-5-1-1-MOCK. - ***************************************************************** - *Local mock of: CALL: 'PROG1' - *In testsuite: "Mock Call statements test" - *In testcase: "Simple call mock works" - ***************************************************************** - ADD 1 TO UT-5-1-1-MOCK-COUNT - MOVE "From mocked PROG1" TO VALUE-1 - . - - UT-5-3-1-MOCK. - ***************************************************************** - *Local mock of: CALL: VALUE-2 - *With args: REFERENCE VALUE-1 - *In testsuite: "Mock Call statements test" - *In testcase: "Call mock with argument works" - ***************************************************************** - ADD 1 TO UT-5-3-1-MOCK-COUNT - MOVE "From mocked PROG2" TO VALUE-1 - . - - UT-5-4-1-MOCK. - ***************************************************************** - *Local mock of: CALL: 'PROG3' - *With args: CONTENT VALUE-1, VALUE VALUE-2, REFERENCE VALUE-3 - *In testsuite: "Mock Call statements test" - *In testcase: "Call mock with content reference for arguments work - * " - ***************************************************************** - ADD 1 TO UT-5-4-1-MOCK-COUNT - MOVE "content" TO VALUE-1 - MOVE "value" TO VALUE-2 - MOVE "reference" TO VALUE-3 - . - - UT-5-5-1-MOCK. - ***************************************************************** - *Local mock of: CALL: 'PROG3' - *With args: CONTENT VALUE-1, VALUE VALUE-2, REFERENCE VALUE-3 - *In testsuite: "Mock Call statements test" - *In testcase: "Paragraph mock is called and call mock is ignored" - ***************************************************************** - ADD 1 TO UT-5-5-1-MOCK-COUNT - MOVE "content" TO VALUE-1 - MOVE "value" TO VALUE-2 - MOVE "reference" TO VALUE-3 - . - - UT-5-5-2-MOCK. - ***************************************************************** - *Local mock of: PARAGRAPH: 800-MAKE-CALL - *In testsuite: "Mock Call statements test" - *In testcase: "Paragraph mock is called and call mock is ignored" - ***************************************************************** - ADD 1 TO UT-5-5-2-MOCK-COUNT - MOVE "overwritten" TO VALUE-1 - . - - UT-5-6-1-MOCK. - ***************************************************************** - *Local mock of: CALL: 'PROG1' - *In testsuite: "Mock Call statements test" - *In testcase: "Global call mock is not overwritten by local call m - * ock (Should fail)" - ***************************************************************** - ADD 1 TO UT-5-6-1-MOCK-COUNT - MOVE "Local PROG1" TO VALUE-1 - . - - UT-6-0-1-MOCK. - ***************************************************************** - *Global mock of: SECTION: 000-START - *In testsuite: "Mock Sections And Paragraphs" - ***************************************************************** - ADD 1 TO UT-6-0-1-MOCK-COUNT - PERFORM 100-WELCOME - PERFORM 500-SWITCH - . - - UT-6-0-2-MOCK. - ***************************************************************** - *Global mock of: PARAGRAPH: 300-CHANGE-1 - *In testsuite: "Mock Sections And Paragraphs" - ***************************************************************** - ADD 1 TO UT-6-0-2-MOCK-COUNT - EVALUATE VALUE-1 - WHEN "Hello" - MOVE "MOCKED" TO VALUE-1 - WHEN OTHER - MOVE "mocked" TO VALUE-1 - END-EVALUATE - . - - UT-6-2-1-MOCK. - ***************************************************************** - *Local mock of: SECTION: 000-START - *In testsuite: "Mock Sections And Paragraphs" - *In testcase: "Local mock overwrites global mock" - ***************************************************************** - ADD 1 TO UT-6-2-1-MOCK-COUNT - MOVE "This is" TO VALUE-1 - MOVE "a mock" TO VALUE-2 - . - - UT-6-3-1-MOCK. - ***************************************************************** - *Local mock of: SECTION: 000-START - *In testsuite: "Mock Sections And Paragraphs" - *In testcase: "Multiple local mocks behaves as intended (First Ver - * ify should fail)" - ***************************************************************** - ADD 1 TO UT-6-3-1-MOCK-COUNT - MOVE "This is" TO VALUE-1 - MOVE "a mock" TO VALUE-2 - PERFORM 100-WELCOME - PERFORM 100-WELCOME - PERFORM 100-WELCOME - . - - UT-6-3-2-MOCK. - ***************************************************************** - *Local mock of: SECTION: 100-WELCOME - *In testsuite: "Mock Sections And Paragraphs" - *In testcase: "Multiple local mocks behaves as intended (First Ver - * ify should fail)" - ***************************************************************** - ADD 1 TO UT-6-3-2-MOCK-COUNT - MOVE "I'll leave VALUE-2 alone" TO VALUE-1 - . - - UT-6-3-3-MOCK. - ***************************************************************** - *Local mock of: PARAGRAPH: 500-SWITCH - *In testsuite: "Mock Sections And Paragraphs" - *In testcase: "Multiple local mocks behaves as intended (First Ver - * ify should fail)" - ***************************************************************** - ADD 1 TO UT-6-3-3-MOCK-COUNT - . - - UT-6-4-1-MOCK. - ***************************************************************** - *Local mock of: PARAGRAPH: 500-SWITCH - *In testsuite: "Mock Sections And Paragraphs" - *In testcase: "Empty local mock makes section do nothing" - ***************************************************************** - ADD 1 TO UT-6-4-1-MOCK-COUNT - . - - UT-6-5-1-MOCK. - ***************************************************************** - *Local mock of: SECTION: 100-WELCOME - *In testsuite: "Mock Sections And Paragraphs" - *In testcase: "Local and global mocks can be used together" - ***************************************************************** - ADD 1 TO UT-6-5-1-MOCK-COUNT - MOVE "Mockity-" TO VALUE-1 - MOVE "Mock" TO VALUE-2 - . - - UT-6-8-1-MOCK. - ***************************************************************** - *Local mock of: SECTION: 400-CHANGE-2 - *In testsuite: "Mock Sections And Paragraphs" - *In testcase: "Mock with EXIT SECTION in source works" - ***************************************************************** - ADD 1 TO UT-6-8-1-MOCK-COUNT - MOVE "Exit section is handled correctly" TO VALUE-1 + CONTINUE . * CCHECKPARAGRAPHSPD.CPY @@ -1691,7 +359,7 @@ UT-TEST-CASE-NAME IF UT-NUMERIC-COMPARE DISPLAY ' EXPECTED ' UT-EXPECTED-NUMERIC - ', WAS ' UT-ACTUAL-NUMERIC + DISPLAY ' WAS ' UT-ACTUAL-NUMERIC ELSE MOVE ZERO TO UT-EXPECTED-TRIM INSPECT FUNCTION REVERSE(UT-EXPECTED) @@ -1823,222 +491,82 @@ UT-END. * CCHECKPARAGRAPHSPD.CPY END + 0000-MAIN. - 000-START SECTION. - EVALUATE UT-TEST-SUITE-NAME - ALSO UT-TEST-CASE-NAME - WHEN "Before and after tests 2" - ALSO "Only global mocks apply in before/after (part 1 - - ")" - PERFORM UT-2-2-1-MOCK - WHEN "Before and after tests 2" - ALSO "Only global mocks apply in before/after (part 2 - - ")" - PERFORM UT-2-3-1-MOCK - WHEN "Before and after tests 2" - ALSO "Only global mocks apply in before/after (part 3 - - ")" - PERFORM UT-2-4-1-MOCK - WHEN "Mock Sections And Paragraphs" - ALSO "Local mock overwrites global mock" - PERFORM UT-6-2-1-MOCK - WHEN "Mock Sections And Paragraphs" - ALSO "Multiple local mocks behaves as intended (First - - " Verify should fail)" - PERFORM UT-6-3-1-MOCK - WHEN "Before and after tests 2" - ALSO ANY - PERFORM UT-2-0-1-MOCK - WHEN "Mock Sections And Paragraphs" - ALSO ANY - PERFORM UT-6-0-1-MOCK - WHEN OTHER - MOVE "Value1" to VALUE-1 - MOVE "Value2" to VALUE-2 - PERFORM 100-WELCOME - PERFORM 200-GOODBYE - PERFORM 300-CHANGE-1 - PERFORM 400-CHANGE-2 - PERFORM 500-SWITCH - PERFORM 999-END - EXIT SECTION - END-EVALUATE - . - - 100-WELCOME SECTION. - EVALUATE UT-TEST-SUITE-NAME - ALSO UT-TEST-CASE-NAME - WHEN "Before and after tests 2" - ALSO "Only global mocks apply in before/after (part 1 - - ")" - PERFORM UT-2-2-2-MOCK - WHEN "Before and after tests 2" - ALSO "Only global mocks apply in before/after (part 2 - - ")" - PERFORM UT-2-3-2-MOCK - WHEN "Before and after tests 2" - ALSO "Only global mocks apply in before/after (part 3 - - ")" - PERFORM UT-2-4-2-MOCK - WHEN "Mock Sections And Paragraphs" - ALSO "Multiple local mocks behaves as intended (First - - " Verify should fail)" - PERFORM UT-6-3-2-MOCK - WHEN "Mock Sections And Paragraphs" - ALSO "Local and global mocks can be used together" - PERFORM UT-6-5-1-MOCK - WHEN "Before and after tests 2" - ALSO ANY - PERFORM UT-2-0-2-MOCK - WHEN OTHER - MOVE "Hello" to VALUE-1 - MOVE "Hi" to VALUE-2 - EXIT SECTION - END-EVALUATE - . + PERFORM 1000-SELECT + PERFORM 2000-OPEN-CURSOR. + PERFORM 3000-FETCH-SQL + UNTIL SQLCODE = 100. - 200-GOODBYE SECTION. - * Comment for testing purposes - MOVE "Bye" to VALUE-1 - MOVE "See you" to VALUE-2 - EXIT SECTION - . + PERFORM 4000-CLOSE-CURSOR. + GOBACK. - 300-CHANGE-1. - *Comment for testing purposes - EVALUATE UT-TEST-SUITE-NAME - ALSO UT-TEST-CASE-NAME - WHEN "Mock Sections And Paragraphs" - ALSO ANY - PERFORM UT-6-0-2-MOCK - WHEN OTHER - EVALUATE VALUE-1 - WHEN "Hello" - MOVE "Bye" TO VALUE-1 - WHEN "Bye" - MOVE "Hello" TO VALUE-1 - WHEN OTHER - EXIT PARAGRAPH - END-EVALUATE - END-EVALUATE + 1000-SELECT. + * EXEC SQL + * SELECT FIRST_NAME, + * LAST_NAME, + * TMS_CREA + * INTO + * :FIRST-NAME, + * :LAST-NAME, + * :TMS-CREA + * FROM TEXEM + * END-EXEC. + CONTINUE . + EVALUATE SQLCODE + WHEN ZEROES + MOVE 'GOOD JOB' TO WS-FIELD-1 - 400-CHANGE-2 SECTION. - EVALUATE UT-TEST-SUITE-NAME - ALSO UT-TEST-CASE-NAME - WHEN "Mock Sections And Paragraphs" - ALSO "Mock with EXIT SECTION in source works" - PERFORM UT-6-8-1-MOCK - WHEN OTHER - EVALUATE VALUE-2 - WHEN "Hi" - MOVE "See you" TO VALUE-2 - EXIT SECTION - WHEN OTHER - MOVE "Hi" TO VALUE-2 - EXIT SECTION - END-EVALUATE - END-EVALUATE - . + WHEN -100 + MOVE 'NOT FOUND' TO WS-FIELD-1 - 410-PLACEHOLDER SECTION. - CONTINUE - . + WHEN OTHER + MOVE 'THIS IS BAD' TO WS-FIELD-1 + END-EVALUATE. - 500-SWITCH. - EVALUATE UT-TEST-SUITE-NAME - ALSO UT-TEST-CASE-NAME - WHEN "Mock Sections And Paragraphs" - ALSO "Multiple local mocks behaves as intended (First - - " Verify should fail)" - PERFORM UT-6-3-3-MOCK - WHEN "Mock Sections And Paragraphs" - ALSO "Empty local mock makes section do nothing" - PERFORM UT-6-4-1-MOCK - WHEN OTHER - MOVE VALUE-2 TO TEMP - MOVE VALUE-1 TO VALUE-2 - MOVE TEMP TO VALUE-1 - END-EVALUATE - . - 600-MAKE-CALL. - MOVE "arg1" to VALUE-1 - MOVE "arg2" to VALUE-2 - * CALL 'PROG1'. - EVALUATE UT-TEST-SUITE-NAME - ALSO UT-TEST-CASE-NAME - WHEN "Mock Call statements test" - ALSO "Simple call mock works" - PERFORM UT-5-1-1-MOCK - WHEN "Mock Call statements test" - ALSO "Global call mock is not overwritten by local ca - - "ll mock (Should fail)" - PERFORM UT-5-6-1-MOCK - WHEN "Mock Call statements test" - ALSO ANY - PERFORM UT-5-0-1-MOCK - END-EVALUATE + 2000-OPEN-CURSOR. + * EXEC SQL + * OPEN NAME-CUR + * END-EXEC. CONTINUE . + EVALUATE SQLCODE + WHEN ZEROES + MOVE 'CURS OPENED' TO WS-FIELD-1 - 700-MAKE-CALL. - MOVE "arg1" to VALUE-1 - MOVE "arg2" to VALUE-2 - * CALL VALUE-2 USING VALUE-1 END-CALL. - EVALUATE UT-TEST-SUITE-NAME - ALSO UT-TEST-CASE-NAME - WHEN "Mock Call statements test" - ALSO "Call mock with argument works" - PERFORM UT-5-3-1-MOCK - END-EVALUATE + WHEN OTHER + MOVE 'THIS IS BAD' TO WS-FIELD-1 + END-EVALUATE. + + 3000-FETCH-SQL. + * EXEC SQL + * CLOSE NAME-CUR + * END-EXEC. CONTINUE . + EVALUATE SQLCODE + WHEN ZEROES + MOVE 'GOOD JOB' TO WS-FIELD-1 - 800-MAKE-CALL. - EVALUATE UT-TEST-SUITE-NAME - ALSO UT-TEST-CASE-NAME - WHEN "Mock Call statements test" - ALSO "Paragraph mock is called and call mock is ignor - - "ed" - PERFORM UT-5-5-2-MOCK - WHEN OTHER - MOVE "arg1" to VALUE-1 - MOVE "arg2" to VALUE-2 - MOVE "arg3" to VALUE-3 - * CALL 'PROG3' USING BY CONTENT VALUE-1, BY VALUE VALUE-2, VALU - * E-3. - EVALUATE UT-TEST-SUITE-NAME - ALSO UT-TEST-CASE-NAME - WHEN "Mock Call statements test" - ALSO "Call mock with content reference for arguments - - "work" - PERFORM UT-5-4-1-MOCK - WHEN "Mock Call statements test" - ALSO "Paragraph mock is called and call mock is ignor - - "ed" - PERFORM UT-5-5-1-MOCK - END-EVALUATE - CONTINUE - * CALL 'PROG3' USING BY CONTENT VALUE-1, BY VALUE VALUE-2, VALU - * E-3 - EVALUATE UT-TEST-SUITE-NAME - ALSO UT-TEST-CASE-NAME - WHEN "Mock Call statements test" - ALSO "Call mock with content reference for arguments - - "work" - PERFORM UT-5-4-1-MOCK - WHEN "Mock Call statements test" - ALSO "Paragraph mock is called and call mock is ignor - - "ed" - PERFORM UT-5-5-1-MOCK - END-EVALUATE - CONTINUE - * CALL 'PROG3' USING VALUE-1 + WHEN -100 + MOVE 'NOT FOUND' TO WS-FIELD-1 + + WHEN OTHER + MOVE 'THIS IS BAD' TO WS-FIELD-1 + END-EVALUATE. + + 4000-CLOSE-CURSOR. + * EXEC SQL + * CLOSE NAME-CUR + * END-EXEC. CONTINUE - END-EVALUATE . + EVALUATE SQLCODE + WHEN ZEROES + MOVE 'CURS CLOSED' TO WS-FIELD-1 - 999-END. - GOBACK - . + WHEN OTHER + MOVE 'THIS IS BAD' TO WS-FIELD-1 + END-EVALUATE. diff --git a/CHANGELOG.md b/CHANGELOG.md index a5319cfb..ccfd34f7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,15 +20,6 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Mock SQL tables - Mock batch file I/O -## \[0.2.6\] 2023-01-12 - Unreleased -### Implemented -- Datastructure-verification for Working Storage has been added. - -## \[0.2.5\] 2022-12-21 -### Implemented -- Compiler options for COBOL Check's run of GnuCOBOL can be set in the config-file -- Minor improvements to error handling - ## \[0.2.4\] 2022-11-02 ### Implemented - EXPECT accepts COBOL keywords again as the last keyword diff --git a/README.md b/README.md index de8ccfb2..5a2dbd9c 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ As of March 2022 we could use help with: ## Downloads -Version 0.2.6 pre-release is available! +Version 0.2.4 pre-release is available! [//]: # (- Find the download on the project home page on the [Neo Pragma site](https://neopragma.com/projects/cobol-check/).) - Find distributions here: [Cobol Check Ditributions](https://github.com/openmainframeproject/cobol-check/blob/main/build/distributions). diff --git a/approval-test-expected.txt b/approval-test-expected.txt index 018e799c..e9684a2f 100644 --- a/approval-test-expected.txt +++ b/approval-test-expected.txt @@ -1,235 +1,272 @@ TESTSUITE: Verify Cobol Check handles numeric relations properly - PASS: 1. Equal sign with literal compare -**** FAIL: 2. Equal sign with literal compare (should fail) - EXPECTED +00000000025.7500000, WAS +00000000025.7400000 - PASS: 3. Not equal sign with literal compare -**** FAIL: 4. Not equal sign with literal compare (should fail) - EXPECTED +00000000025.7400000, WAS +00000000025.7400000 - PASS: 5. Not-equal sign with literal compare -**** FAIL: 6. Not-equal sign with literal compare (should fail) - EXPECTED +00000000013.6000000, WAS +00000000013.6000000 - PASS: 7. Not not-equal sign with literal compare -**** FAIL: 8. Not not-equal sign with literal compare (should fail) - EXPECTED +00000000013.6000000, WAS +00000000013.7000000 - PASS: 9. Equal sign with ield compare -**** FAIL: 10. Equal sign with field compare (should fail) - EXPECTED +00000000025.7500000, WAS +00000000025.7400000 - PASS: 11. Not equal sign with field compare -**** FAIL: 12. Not equal sign with field compare (should fail) - EXPECTED +00000000025.7400000, WAS +00000000025.7400000 - PASS: 13. Not-equal sign with field compare -**** FAIL: 14. Not-equal sign with field compare (should fail) - EXPECTED +00000000025.7400000, WAS +00000000025.7400000 - PASS: 15. Not not-equal sign with field compare -**** FAIL: 16. Not not-equal sign with field compare (should fail) - EXPECTED +00000000025.7400000, WAS +00000000025.7500000 - PASS: 17. Less-than sign with literal compare -**** FAIL: 18. Less-than sign with literal compare (should fail) - EXPECTED +00000000018.0660000, WAS +00000000018.0670000 - PASS: 19. Not less-than sign with literal compare -**** FAIL: 20. Not less-than sign with literal compare (should fail) - EXPECTED +00000000018.0670000, WAS +00000000018.0660000 - PASS: 21. Less-than sign with field compare -**** FAIL: 22. Less-than sign with field compare (should fail) - EXPECTED +00000000416.0720000, WAS +00000000416.0720000 - PASS: 23. Not less-than sign with field compare -**** FAIL: 24. Not less-than sign with field compare (should fail) - EXPECTED +00000000416.0720000, WAS +00000000416.0710000 - PASS: 25. Greater-than sign with literal compare -**** FAIL: 26. Greater-than sign with literal compare (should fail) - EXPECTED +00000000010.0000000, WAS +00000000009.8050000 - PASS: 27. Not greater-than sign with literal compare -**** FAIL: 28. Not greater-than sign with literal compare (should fail) - EXPECTED +00000000107.7010000, WAS +00000000107.7020000 - PASS: 29. Greater-than sign with field compare -**** FAIL: 30. Greater-than sign with field compare (should fail) - EXPECTED +00000001766.0314400, WAS +00000001766.0314300 - PASS: 31. Not greater-than sign with field to field compare -**** FAIL: 32. Not greater-than sign with field compare (should fail) - EXPECTED +00000001766.0314400, WAS +00000001766.0314500 - PASS: 33. Greater-than-or-equal-to sign with literal compare when greater - PASS: 34. Greater-than-or-equal-to sign with literal compare when equal -**** FAIL: 35. Greater-than-or-equal-to sign with literal compare (should fail) - EXPECTED +00000000010.0000000, WAS +00000000009.8050000 - PASS: 36. Not greater-than-or-equal-to sign with literal compare when less -**** FAIL: 37. Not greater-than-or-equal-to sign with literal compare when equal (should fail) - EXPECTED +00000000018.0670000, WAS +00000000018.0670000 -**** FAIL: 38. Greater-than-or-equal-to sign with literal compare when greater (should fail) - EXPECTED +00000000013.4400000, WAS +00000000013.4500000 - PASS: 39. Greater-than-or-equal-to-sign with field compare when equal - PASS: 40. Greater-than-or-equal-to-sign with field compare when greater -**** FAIL: 41. Greater-than-or-equal-to-sign with field compare when less (should fail) - EXPECTED +00000000475.0620000, WAS +00000000475.0610000 - PASS: 42. Not greater-than-or-equal-to-sign with field compare when less -**** FAIL: 43. Not greater-than-or-equal-to-sign with field compare when equal (should fail) - EXPECTED +00000000475.0620000, WAS +00000000475.0620000 -**** FAIL: 44. Not greater-than-or-equal-to-sign with field compare when greater (should fail) - EXPECTED +00000000475.0620000, WAS +00000000475.0630000 - PASS: 45. Less-than-or-equal-to-sign with field compare when equal - PASS: 46. Less-than-or-equal-to-sign with field compare when less -**** FAIL: 47. Less-than-or-equal-to-sign with field compare when greater (should fail) - EXPECTED +00000000475.0620000, WAS +00000000475.0630000 - PASS: 48. Not less-than-or-equal-to-sign with field compare when greater -**** FAIL: 49. Not greater-than-or-equal-to-sign with field compare when equal (should fail) - EXPECTED +00000000475.0620000, WAS +00000000475.0620000 -**** FAIL: 50. Not greater-than-or-equal-to-sign with field compare when less (should fail) - EXPECTED +00000000475.0630000, WAS +00000000475.0620000 - PASS: 51. Display Numeric field equals literal - - 51 TEST CASES WERE EXECUTED - 26 PASSED + PASS: 1. Equal sign with literal compare +**** FAIL: 2. Equal sign with literal compare (should fail) + EXPECTED +00000000025.7500000 + WAS +00000000025.7400000 + PASS: 3. Not equal sign with literal compare +**** FAIL: 4. Not equal sign with literal compare (should fail) + EXPECTED +00000000025.7400000 + WAS +00000000025.7400000 + PASS: 5. Not-equal sign with literal compare +**** FAIL: 6. Not-equal sign with literal compare (should fail) + EXPECTED +00000000013.6000000 + WAS +00000000013.6000000 + PASS: 7. Not not-equal sign with literal compare +**** FAIL: 8. Not not-equal sign with literal compare (should fail) + EXPECTED +00000000013.6000000 + WAS +00000000013.7000000 + PASS: 9. Equal sign with ield compare +**** FAIL: 10. Equal sign with field compare (should fail) + EXPECTED +00000000025.7500000 + WAS +00000000025.7400000 + PASS: 11. Not equal sign with field compare +**** FAIL: 12. Not equal sign with field compare (should fail) + EXPECTED +00000000025.7400000 + WAS +00000000025.7400000 + PASS: 13. Not-equal sign with field compare +**** FAIL: 14. Not-equal sign with field compare (should fail) + EXPECTED +00000000025.7400000 + WAS +00000000025.7400000 + PASS: 15. Not not-equal sign with field compare +**** FAIL: 16. Not not-equal sign with field compare (should fail) + EXPECTED +00000000025.7400000 + WAS +00000000025.7500000 + PASS: 17. Less-than sign with literal compare +**** FAIL: 18. Less-than sign with literal compare (should fail) + EXPECTED +00000000018.0660000 + WAS +00000000018.0670000 + PASS: 19. Not less-than sign with literal compare +**** FAIL: 20. Not less-than sign with literal compare (should fail) + EXPECTED +00000000018.0670000 + WAS +00000000018.0660000 + PASS: 21. Less-than sign with field compare +**** FAIL: 22. Less-than sign with field compare (should fail) + EXPECTED +00000000416.0720000 + WAS +00000000416.0720000 + PASS: 23. Not less-than sign with field compare +**** FAIL: 24. Not less-than sign with field compare (should fail) + EXPECTED +00000000416.0720000 + WAS +00000000416.0710000 + PASS: 25. Greater-than sign with literal compare +**** FAIL: 26. Greater-than sign with literal compare (should fail) + EXPECTED +00000000010.0000000 + WAS +00000000009.8050000 + PASS: 27. Not greater-than sign with literal compare +**** FAIL: 28. Not greater-than sign with literal compare (should fail) + EXPECTED +00000000107.7010000 + WAS +00000000107.7020000 + PASS: 29. Greater-than sign with field compare +**** FAIL: 30. Greater-than sign with field compare (should fail) + EXPECTED +00000001766.0314400 + WAS +00000001766.0314300 + PASS: 31. Not greater-than sign with field to field compare +**** FAIL: 32. Not greater-than sign with field compare (should fail) + EXPECTED +00000001766.0314400 + WAS +00000001766.0314500 + PASS: 33. Greater-than-or-equal-to sign with literal compare when greater + PASS: 34. Greater-than-or-equal-to sign with literal compare when equal +**** FAIL: 35. Greater-than-or-equal-to sign with literal compare (should fail) + EXPECTED +00000000010.0000000 + WAS +00000000009.8050000 + PASS: 36. Not greater-than-or-equal-to sign with literal compare when less +**** FAIL: 37. Not greater-than-or-equal-to sign with literal compare when equal (should fail) + EXPECTED +00000000018.0670000 + WAS +00000000018.0670000 +**** FAIL: 38. Greater-than-or-equal-to sign with literal compare when greater (should fail) + EXPECTED +00000000013.4400000 + WAS +00000000013.4500000 + PASS: 39. Greater-than-or-equal-to-sign with field compare when equal + PASS: 40. Greater-than-or-equal-to-sign with field compare when greater +**** FAIL: 41. Greater-than-or-equal-to-sign with field compare when less (should fail) + EXPECTED +00000000475.0620000 + WAS +00000000475.0610000 + PASS: 42. Not greater-than-or-equal-to-sign with field compare when less +**** FAIL: 43. Not greater-than-or-equal-to-sign with field compare when equal (should fail) + EXPECTED +00000000475.0620000 + WAS +00000000475.0620000 +**** FAIL: 44. Not greater-than-or-equal-to-sign with field compare when greater (should fail) + EXPECTED +00000000475.0620000 + WAS +00000000475.0630000 + PASS: 45. Less-than-or-equal-to-sign with field compare when equal + PASS: 46. Less-than-or-equal-to-sign with field compare when less +**** FAIL: 47. Less-than-or-equal-to-sign with field compare when greater (should fail) + EXPECTED +00000000475.0620000 + WAS +00000000475.0630000 + PASS: 48. Not less-than-or-equal-to-sign with field compare when greater +**** FAIL: 49. Not greater-than-or-equal-to-sign with field compare when equal (should fail) + EXPECTED +00000000475.0620000 + WAS +00000000475.0620000 +**** FAIL: 50. Not greater-than-or-equal-to-sign with field compare when less (should fail) + EXPECTED +00000000475.0630000 + WAS +00000000475.0620000 + PASS: 51. Display Numeric field equals literal + PASS: 52. Display Numeric field equals literal + PASS: 53. Variable must be ZERO + PASS: 54. Variable must be ZEROS + PASS: 55. Variable must be ZEROES + PASS: 56. Variable must be NUMERIC 123 + PASS: 57. Variable must be NUMERIC -123 + PASS: 58. Variable must be 123 + PASS: 59. Variable must be -123 + + 59 TEST CASES WERE EXECUTED + 34 PASSED 25 FAILED ================================================= TESTSUITE: Tests of alphanumeric expectations - PASS: 1. Equality with an alphanumeric literal using TO BE - PASS: 2. Equality with an alphanumeric literal using TO EQUAL - PASS: 3. Equality with an alphanumeric literal using '=' - PASS: 4. Equality with an alphanumeric literal and reference modification - PASS: 5. Non-equality with an alphanumeric literal using TO BE - PASS: 6. Non-equality with an alphanumeric literal using TO EQUAL - PASS: 7. Non-equality with an alphanumeric literal using '!=' - PASS: 8. Non-equality with an alphanumeric literal and reference modification - PASS: 9. Greater-than sign with an alphanumeric literal - PASS: 10. Less-than sign with an alphanumeric literal - PASS: 11. Not greater-than sign with an alphanumeric literal - PASS: 12. Not less-than sign with an alphanumeric literal - PASS: 13. Display numeric - - 13 TEST CASES WERE EXECUTED - 13 PASSED + PASS: 1. Equality with an alphanumeric literal using TO BE + PASS: 2. Equality with an alphanumeric literal using TO EQUAL + PASS: 3. Equality with an alphanumeric literal using '=' + PASS: 4. Equality with an alphanumeric literal and reference modification + PASS: 5. Non-equality with an alphanumeric literal using TO BE + PASS: 6. Non-equality with an alphanumeric literal using TO EQUAL + PASS: 7. Non-equality with an alphanumeric literal using '!=' + PASS: 8. Non-equality with an alphanumeric literal and reference modification + PASS: 9. Greater-than sign with an alphanumeric literal + PASS: 10. Less-than sign with an alphanumeric literal + PASS: 11. Not greater-than sign with an alphanumeric literal + PASS: 12. Not less-than sign with an alphanumeric literal + PASS: 13. Display numeric + PASS: 14. Variable must be SPACE + PASS: 15. Variable must be SPACES + + 15 TEST CASES WERE EXECUTED + 15 PASSED 0 FAILED ================================================= TESTSUITE: Greeting includes the user name when it is provided -**** FAIL: 1. When message type is greeting it returns Hello, James! +**** FAIL: 1. When message type is greeting it returns Hello, James! EXPECTED , WAS -**** FAIL: 2. When message type is farewell it returns Goodbye, James! +**** FAIL: 2. When message type is farewell it returns Goodbye, James! EXPECTED , WAS - PASS: 3. User name for greeting and farewell are consistent + PASS: 3. User name for greeting and farewell are consistent TESTSUITE: Greeting returns the appropriate message based on message type -**** FAIL: 4. When message type is greeting it returns 'Hello, World!' +**** FAIL: 4. When message type is greeting it returns 'Hello, World!' EXPECTED , WAS - PASS: 5. try numerical compare -**** FAIL: 6. try 88 level compare + PASS: 5. try numerical compare +**** FAIL: 6. try 88 level compare EXPECTED , WAS -**** FAIL: 7. When message type is farewell it returns See you later, alligator! +**** FAIL: 7. When message type is farewell it returns See you later, alligator! EXPECTED , WAS -**** FAIL: 8. Message type greeting is not true +**** FAIL: 8. Message type greeting is not true EXPECTED , WAS - + 8 TEST CASES WERE EXECUTED 2 PASSED 6 FAILED ================================================= -TESTSUITE: -Tests for a sequential file copy program - PASS: 1. Output fields are populated from the input record - PASS: 2. Output fields are populated from the input record - 2 TEST CASES WERE EXECUTED - 2 PASSED - 0 FAILED -================================================= TESTSUITE: Before and after tests 1 - PASS: 1. Before sets value - PASS: 2. After sets value - PASS: 3. Before happens before Testcase - PASS: 4. After happens after Testcase (part 1) - PASS: 5. After happens after Testcase (part 2) + PASS: 1. Before sets value + PASS: 2. After sets value + PASS: 3. Before happens before Testcase + PASS: 4. After happens after Testcase (part 1) + PASS: 5. After happens after Testcase (part 2) TESTSUITE: Before and after tests 2 - PASS: 6. VERIFY EXACT 0 ACCESSES TO SECTION 000-START - PASS: 7. VERIFY EXACT 0 ACCESSES TO SECTION 100-WELCOME - PASS: 8. Only global mocks apply in before/after (part 1) - PASS: 9. Only global mocks apply in before/after (part 1) - PASS: 10. Only global mocks apply in before/after (part 1) - PASS: 11. Only global mocks apply in before/after (part 2) - PASS: 12. Only global mocks apply in before/after (part 2) - PASS: 13. Only global mocks apply in before/after (part 2) - PASS: 14. Only global mocks apply in before/after (part 3) - PASS: 15. Only global mocks apply in before/after (part 3) - PASS: 16. Only global mocks apply in before/after (part 3) + PASS: 6. VERIFY EXACT 0 ACCESSES TO SECTION 000-START + PASS: 7. VERIFY EXACT 0 ACCESSES TO SECTION 100-WELCOME + PASS: 8. Only global mocks apply in before/after (part 1) + PASS: 9. Only global mocks apply in before/after (part 1) + PASS: 10. Only global mocks apply in before/after (part 1) + PASS: 11. Only global mocks apply in before/after (part 2) + PASS: 12. Only global mocks apply in before/after (part 2) + PASS: 13. Only global mocks apply in before/after (part 2) + PASS: 14. Only global mocks apply in before/after (part 3) + PASS: 15. Only global mocks apply in before/after (part 3) + PASS: 16. Only global mocks apply in before/after (part 3) TESTSUITE: Before and after tests 3 - PASS: 17. Before proceeds after from last testcase (part 1) - PASS: 18. Before proceeds after from last testcase (part 2) + PASS: 17. Before proceeds after from last testcase (part 1) + PASS: 18. Before proceeds after from last testcase (part 2) TESTSUITE: General tests - PASS: 19. Welcome section performs as intended - PASS: 20. Welcome section performs as intended - PASS: 21. Goodbye section performs as intended - PASS: 22. Goodbye section performs as intended - PASS: 23. Change-1 changes hello to bye - PASS: 24. Change-1 changes hello to bye - PASS: 25. Change-1 changes bye to hello - PASS: 26. Change-1 changes bye to hello - PASS: 27. Change-2 changes hi to see you - PASS: 28. Change-2 changes hi to see you - PASS: 29. Change-2 changes see you to hi - PASS: 30. Change-2 changes see you to hi - PASS: 31. Switches values - PASS: 32. Switches values + PASS: 19. Welcome section performs as intended + PASS: 20. Welcome section performs as intended + PASS: 21. Goodbye section performs as intended + PASS: 22. Goodbye section performs as intended + PASS: 23. Change-1 changes hello to bye + PASS: 24. Change-1 changes hello to bye + PASS: 25. Change-1 changes bye to hello + PASS: 26. Change-1 changes bye to hello + PASS: 27. Change-2 changes hi to see you + PASS: 28. Change-2 changes hi to see you + PASS: 29. Change-2 changes see you to hi + PASS: 30. Change-2 changes see you to hi + PASS: 31. Switches values + PASS: 32. Switches values TESTSUITE: Mock Call statements test - PASS: 33. Simple call mock works - PASS: 34. Simple call mock works - PASS: 35. VERIFY EXACT 1 ACCESS TO CALL 'PROG1' - PASS: 36. Simple global call mock works - PASS: 37. Simple global call mock works - PASS: 38. VERIFY EXACT 1 ACCESS TO CALL 'PROG1' - PASS: 39. Call mock with argument works - PASS: 40. Call mock with argument works - PASS: 41. VERIFY EXACT 1 ACCESS TO CALL VALUE-2 - PASS: 42. Call mock with content reference for arguments work - PASS: 43. Call mock with content reference for arguments work - PASS: 44. Call mock with content reference for arguments work - PASS: 45. VERIFY EXACT 2 ACCESSES TO CALL 'PROG3' - PASS: 46. Paragraph mock is called and call mock is ignored - PASS: 47. Paragraph mock is called and call mock is ignored - PASS: 48. Paragraph mock is called and call mock is ignored - PASS: 49. VERIFY EXACT 1 ACCESS TO PARAGRAPH 800-MAKE-CALL - PASS: 50. VERIFY EXACT 0 ACCESSES TO CALL 'PROG3' -**** FAIL: 51. Global call mock is not overwritten by local call mock (Should fail) + PASS: 33. Simple call mock works + PASS: 34. Simple call mock works + PASS: 35. VERIFY EXACT 1 ACCESS TO CALL 'PROG1' + PASS: 36. Simple global call mock works + PASS: 37. Simple global call mock works + PASS: 38. VERIFY EXACT 1 ACCESS TO CALL 'PROG1' + PASS: 39. Call mock with argument works + PASS: 40. Call mock with argument works + PASS: 41. VERIFY EXACT 1 ACCESS TO CALL VALUE-2 + PASS: 42. Call mock with field and no arguments work + PASS: 43. Call mock with field and no arguments work + PASS: 44. VERIFY EXACT 1 ACCESS TO CALL VALUE-2 + PASS: 45. Call mock with content reference for arguments work + PASS: 46. Call mock with content reference for arguments work + PASS: 47. Call mock with content reference for arguments work + PASS: 48. VERIFY EXACT 2 ACCESSES TO CALL 'PROG3' + PASS: 49. Paragraph mock is called and call mock is ignored + PASS: 50. Paragraph mock is called and call mock is ignored + PASS: 51. Paragraph mock is called and call mock is ignored + PASS: 52. VERIFY EXACT 1 ACCESS TO PARAGRAPH 800-MAKE-CALL + PASS: 53. VERIFY EXACT 0 ACCESSES TO CALL 'PROG3' +**** FAIL: 54. Global call mock is not overwritten by local call mock (Should fail) EXPECTED , WAS TESTSUITE: Mock Sections And Paragraphs - PASS: 52. Global mock behaves as intended - PASS: 53. Global mock behaves as intended - PASS: 54. VERIFY EXACT 1 ACCESS TO SECTION 000-START - PASS: 55. Local mock overwrites global mock - PASS: 56. Local mock overwrites global mock - PASS: 57. VERIFY AT LEAST 2 ACCESSES TO SECTION 000-START - PASS: 58. Multiple local mocks behaves as intended (First Verify should fail) - PASS: 59. Multiple local mocks behaves as intended (First Verify should fail) -**** FAIL: 60. VERIFY ACCESSES TO SECTION 000-START - EXPECTED EXACT 5 ACCESSES, WAS 2 - PASS: 61. VERIFY NO MORE THAN 10 ACCESSES TO SECTION 100-WELCOME - PASS: 62. VERIFY EXACT 0 ACCESSES TO PARAGRAPH 500-SWITCH - PASS: 63. Empty local mock makes section do nothing - PASS: 64. Empty local mock makes section do nothing - PASS: 65. VERIFY EXACT 1 ACCESS TO PARAGRAPH 500-SWITCH - PASS: 66. Local and global mocks can be used together - PASS: 67. Local and global mocks can be used together - PASS: 68. If no local or global mock run source code - PASS: 69. If no local or global mock run source code - PASS: 70. Global paragraph mock works - PASS: 71. Global paragraph mock works - - 71 TEST CASES WERE EXECUTED - 69 PASSED + PASS: 55. Global mock behaves as intended + PASS: 56. Global mock behaves as intended + PASS: 57. VERIFY EXACT 1 ACCESS TO SECTION 000-START + PASS: 58. VERIFY EXACT 0 ACCESSES TO PARAGRAPH 300-CHANGE-1 + PASS: 59. Local mock overwrites global mock + PASS: 60. Local mock overwrites global mock + PASS: 61. VERIFY AT LEAST 2 ACCESSES TO SECTION 000-START +**** FAIL: 62. VERIFY ACCESSES TO SECTION 000-START + EXPECTED EXACT 5 ACCESSES, WAS 2 + PASS: 63. Multiple local mocks behaves as intended (First Verify should fail) + PASS: 64. VERIFY NO MORE THAN 10 ACCESSES TO SECTION 100-WELCOME + PASS: 65. VERIFY EXACT 0 ACCESSES TO PARAGRAPH 500-SWITCH + PASS: 66. Multiple local mocks behaves as intended (First Verify should fail) + PASS: 67. Empty local mock makes section do nothing + PASS: 68. Empty local mock makes section do nothing + PASS: 69. VERIFY EXACT 1 ACCESS TO PARAGRAPH 500-SWITCH + PASS: 70. Local and global mocks can be used together + PASS: 71. Local and global mocks can be used together + PASS: 72. If no local or global mock run source code + PASS: 73. If no local or global mock run source code + PASS: 74. Global paragraph mock works + PASS: 75. Global paragraph mock works + PASS: 76. Mock with EXIT SECTION in source works + PASS: 77. Mock one-liner with end mock on next line + PASS: 78. Mock one-liner with content + PASS: 79. Mock content with end-mock on the same line + PASS: 80. Mock content on multiple lines, with end-mock on the same line as some content + PASS: 81. Mock content on multiple lines, with end-mock on the same line as some content + + 81 TEST CASES WERE EXECUTED + 79 PASSED 2 FAILED ================================================= TESTSUITE: Verify Cobol Check handles decimal is comma properly - PASS: 1. simple expect for number - PASS: 2. simple expect for number - PASS: 3. VERIFY EXACT 1 ACCESS TO PARAGRAPH 100-ASSIGN - + PASS: 1. simple expect for number + PASS: 2. simple expect for number + PASS: 3. VERIFY EXACT 1 ACCESS TO PARAGRAPH 100-ASSIGN + 3 TEST CASES WERE EXECUTED 3 PASSED 0 FAILED -================================================= \ No newline at end of file +================================================= diff --git a/build.gradle b/build.gradle index 20e17f6e..e2f7d3d7 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ plugins { id 'jacoco' } -def productVersion = '0.2.6' +def productVersion = '0.2.4' def productName = 'cobol-check' group = 'org.openmainframeproject' description = 'Unit testing framework for Cobol' diff --git a/config.properties b/config.properties index 82749061..826e6062 100644 --- a/config.properties +++ b/config.properties @@ -147,7 +147,7 @@ application.source.filename.suffix = CBL,cbl,COB,cob # If application copybook filenames have a suffix, specify it here without the period or dot # e.g. application.copybook.filename.suffix = CBL #--------------------------------------------------------------------------------------------------------------------- -application.copybook.filename.suffix = CBL,cbl,COB,cob +application.copybook.filename.suffix = CBL,cbl,COB,cob,cpy #--------------------------------------------------------------------------------------------------------------------- # Optional override of system default Locale for log messages and exception messages. @@ -163,18 +163,6 @@ application.copybook.filename.suffix = CBL,cbl,COB,cob #--------------------------------------------------------------------------------------------------------------------- concatenated.test.suites = ./ALLTESTS -#--------------------------------------------------------------------------------------------------------------------- -# The GnuCOBOL compiler has a lot of different compile options. -# Some of these options are gathered in a dialect file (default: default.conf) -# and are located in the "GnuCOBOL-installationfolder/config"-folder. -# If you need any specific dialect file or other GnuCOBOL-specific compile options, you can add them here. -# If not specified, the default will be the normal GnuCOBOL compile setup. -# Separate options with a comma. Set the value to 'null' for default compile options -# Example: -# gnucobol.compile.options = -std=ibm,-fsingle-quote -#--------------------------------------------------------------------------------------------------------------------- -gnucobol.compile.options = null - #--------------------------------------------------------------------------------------------------------------------- # Shell scripts and JCL files for executing your test suites. # Cobol Check will invoke one of these after creating the copy of the program under test that contains diff --git a/scripts/windows_gnucobol_run_tests.cmd b/scripts/windows_gnucobol_run_tests.cmd index affff77e..2a7579f3 100644 --- a/scripts/windows_gnucobol_run_tests.cmd +++ b/scripts/windows_gnucobol_run_tests.cmd @@ -4,4 +4,5 @@ rem rem Assumptions: rem rem GnuCOBOL 3.+ is installed and on the path. Its executable or alias or symlink is named "cobc". -cobc -x %* && %~dpn1 \ No newline at end of file + +cobc -x %1 && %~dpn1 \ No newline at end of file diff --git a/src/main/cobol/DB2PROG.cbl b/src/main/cobol/DB2PROG.cbl new file mode 100644 index 00000000..c6c80079 --- /dev/null +++ b/src/main/cobol/DB2PROG.cbl @@ -0,0 +1,96 @@ + IDENTIFICATION DIVISION. + PROGRAM-ID. DB2PROG. + ***************************************************************** + * Program to exercise DB2 instructions + ***************************************************************** + ENVIRONMENT DIVISION. + INPUT-OUTPUT SECTION. + FILE-CONTROL. + DATA DIVISION. + WORKING-STORAGE SECTION. + + 01 FILLER. + 05 WS-FIELD-1 PIC X(80). + 05 ws-Field-2 PIC X(80). + + + EXEC SQL INCLUDE SQLCA END-EXEC. + EXEC SQL INCLUDE TEXEM END-EXEC. + + EXEC SQL + DECLARE NAME-CUR CURSOR FOR + SELECT FIRST_NAME, LAST_NAME FROM TEXEM + END-EXEC. + + PROCEDURE DIVISION. + 0000-MAIN. + + PERFORM 1000-SELECT + PERFORM 2000-OPEN-CURSOR. + PERFORM 3000-FETCH-SQL + UNTIL SQLCODE = 100. + + PERFORM 4000-CLOSE-CURSOR. + GOBACK. + + 1000-SELECT. + EXEC SQL + SELECT FIRST_NAME, + LAST_NAME, + TMS_CREA + INTO + :FIRST-NAME, + :LAST-NAME, + :TMS-CREA + FROM TEXEM + END-EXEC. + EVALUATE SQLCODE + WHEN ZEROES + MOVE 'GOOD JOB' TO WS-FIELD-1 + + WHEN -100 + MOVE 'NOT FOUND' TO WS-FIELD-1 + + WHEN OTHER + MOVE 'THIS IS BAD' TO WS-FIELD-1 + END-EVALUATE. + + + 2000-OPEN-CURSOR. + EXEC SQL + OPEN NAME-CUR + END-EXEC. + EVALUATE SQLCODE + WHEN ZEROES + MOVE 'CURS OPENED' TO WS-FIELD-1 + + WHEN OTHER + MOVE 'THIS IS BAD' TO WS-FIELD-1 + END-EVALUATE. + + 3000-FETCH-SQL. + EXEC SQL + CLOSE NAME-CUR + END-EXEC. + EVALUATE SQLCODE + WHEN ZEROES + MOVE 'GOOD JOB' TO WS-FIELD-1 + + WHEN -100 + MOVE 'NOT FOUND' TO WS-FIELD-1 + + WHEN OTHER + MOVE 'THIS IS BAD' TO WS-FIELD-1 + END-EVALUATE. + + 4000-CLOSE-CURSOR. + EXEC SQL + CLOSE NAME-CUR + END-EXEC. + EVALUATE SQLCODE + WHEN ZEROES + MOVE 'CURS CLOSED' TO WS-FIELD-1 + + WHEN OTHER + MOVE 'THIS IS BAD' TO WS-FIELD-1 + END-EVALUATE. diff --git a/src/main/cobol/MOCKTEST.CBL b/src/main/cobol/MOCKTEST.CBL index 0994d02b..71c63ab8 100644 --- a/src/main/cobol/MOCKTEST.CBL +++ b/src/main/cobol/MOCKTEST.CBL @@ -1,6 +1,6 @@ IDENTIFICATION DIVISION. PROGRAM-ID. MOCKTEST. - /**************************************************************** + ***************************************************************** * Program to exercise different mock statements and edge cases. ***************************************************************** ENVIRONMENT DIVISION. @@ -19,25 +19,21 @@ 000-START SECTION. MOVE "Value1" to VALUE-1 MOVE "Value2" to VALUE-2 - / PERFORM 100-WELCOME PERFORM 200-GOODBYE - / PERFORM 300-CHANGE-1 PERFORM 400-CHANGE-2 PERFORM 500-SWITCH PERFORM 999-END EXIT SECTION. - /********************** + 100-WELCOME SECTION . MOVE "Hello" to VALUE-1 MOVE "Hi" to VALUE-2 EXIT SECTION . - /************************* - * KALD KTOMHDR, HENT OP - ************************** + 200-GOODBYE SECTION. * Comment for testing purposes MOVE "Bye" to VALUE-1 @@ -56,9 +52,6 @@ WHEN OTHER EXIT PARAGRAPH END-EVALUATE. - /************************* - * KALD KTOMHDR, HENT OP - ************************** 400-CHANGE-2 SECTION . @@ -71,9 +64,6 @@ EXIT SECTION END-EVALUATE . - /************************* - * KALD KTOMHDR, HENT OP - ************************** 410-PLACEHOLDER SECTION. CONTINUE diff --git a/src/main/cobol/copy/COPY001-padded.CBL b/src/main/cobol/copy/COPY001-padded.CBL index 09730151..5b341e84 100644 --- a/src/main/cobol/copy/COPY001-padded.CBL +++ b/src/main/cobol/copy/COPY001-padded.CBL @@ -1,8 +1,8 @@ - * Start of COPY001 - 01 TEST-DATA-LAYOUT-001-A. - 05 TEST-DATA-ELEMENT-001-A1 PIC X(05). - 05 TEST-DATA-ELEMENT-001-A2 PIC ZZ9. - 01 TEST-DATA-LAYOUT-001-B. - 05 TEST-DATA-ELEMENT-001-B1 PIC X(18). - 05 TEST-DATA-ELEMENT-001-B2 PIC S9(05) COMP-3. - * End of COPY001 + * Start of COPY001 + 01 TEST-DATA-LAYOUT-001-A. + 05 TEST-DATA-ELEMENT-001-A1 PIC X(05). + 05 TEST-DATA-ELEMENT-001-A2 PIC ZZ9. + 01 TEST-DATA-LAYOUT-001-B. + 05 TEST-DATA-ELEMENT-001-B1 PIC X(18). + 05 TEST-DATA-ELEMENT-001-B2 PIC S9(05) COMP-3. + * End of COPY001 diff --git a/src/main/cobol/copy/SQLCA.cpy b/src/main/cobol/copy/SQLCA.cpy new file mode 100644 index 00000000..00bed49e --- /dev/null +++ b/src/main/cobol/copy/SQLCA.cpy @@ -0,0 +1,24 @@ + 01 SQLCA. + 03 SQLCAID PIC X(8) VALUE "SQLCA ". + 03 SQLCABC USAGE BINARY-LONG VALUE 136. + 03 SQLCODE USAGE BINARY-LONG VALUE 0. + 03 SQLERRM. + 05 SQLERRML USAGE BINARY-SHORT. + 05 SQLERRMC PIC X(70). + 03 SQLERRP PIC X(8). + 03 SQLERRD USAGE BINARY-LONG OCCURS 6. + 03 SQLWARN. + 05 SQLWARN0 PIC X. + 05 SQLWARN1 PIC X. + 05 SQLWARN2 PIC X. + 05 SQLWARN3 PIC X. + 05 SQLWARN4 PIC X. + 05 SQLWARN5 PIC X. + 05 SQLWARN6 PIC X. + 05 SQLWARN7 PIC X. + 05 SQLWARN8 PIC X. + 05 SQLWARN9 PIC X. + 05 SQLWARN10 PIC X. + 05 SQLWARNA REDEFINES SQLWARN10 PIC X. + 03 SQLSTATE PIC X(5). + 03 FILLER PIC X(21). diff --git a/src/main/cobol/copy/TEXE2.cpy b/src/main/cobol/copy/TEXE2.cpy new file mode 100644 index 00000000..445b6ac0 --- /dev/null +++ b/src/main/cobol/copy/TEXE2.cpy @@ -0,0 +1,14 @@ + EXEC SQL DECLARE TEXE2 TABLE + ( FIRST_NAME CHAR(10) NOT NULL, + LAST_NAME CHAR(10) NOT NULL, + WALLET INT(10) NOT NULL, + TMS_CREA TIMESTAMP NOT NULL + ) END-EXEC. + ****************************************************************** + * COBOL DECLARATION FOR TABLE TEXEM2 * + ****************************************************************** + 01 TEXE2. + 10 FIRST-NAME PIC X(10). + 10 LAST-NAME PIC X(10). + 10 WALLET PIC 9(8)V99 COMP-3. + 10 TMS-CREA PIC X(26). \ No newline at end of file diff --git a/src/main/cobol/copy/TEXEM.cpy b/src/main/cobol/copy/TEXEM.cpy new file mode 100644 index 00000000..e4996ae2 --- /dev/null +++ b/src/main/cobol/copy/TEXEM.cpy @@ -0,0 +1,12 @@ + EXEC SQL DECLARE TEXEM TABLE + ( FIRST_NAME CHAR(10) NOT NULL, + LAST_NAME CHAR(10) NOT NULL, + TMS_CREA TIMESTAMP NOT NULL + ) END-EXEC. + ****************************************************************** + * COBOL DECLARATION FOR TABLE TEXEMP * + ****************************************************************** + 01 TEXEM. + 10 FIRST-NAME PIC X(10). + 10 LAST-NAME PIC X(10). + 10 TMS-CREA PIC X(26). \ No newline at end of file diff --git a/src/main/java/org/openmainframeproject/cobolcheck/exceptions/CopybookCouldNotBeExpanded.java b/src/main/java/org/openmainframeproject/cobolcheck/exceptions/CopybookCouldNotBeExpanded.java new file mode 100644 index 00000000..01db27fb --- /dev/null +++ b/src/main/java/org/openmainframeproject/cobolcheck/exceptions/CopybookCouldNotBeExpanded.java @@ -0,0 +1,7 @@ +package org.openmainframeproject.cobolcheck.exceptions; + +public class CopybookCouldNotBeExpanded extends RuntimeException { + public CopybookCouldNotBeExpanded(Throwable cause) { + super(cause); + } +} diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/CopybookExpander.java b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/CopybookExpander.java index ec24a0e2..b68e7ff4 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/CopybookExpander.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/CopybookExpander.java @@ -6,6 +6,9 @@ import org.openmainframeproject.cobolcheck.services.Messages; import org.openmainframeproject.cobolcheck.services.StringTuple; import org.openmainframeproject.cobolcheck.services.filehelpers.PathHelper; +import org.openmainframeproject.cobolcheck.services.cobolLogic.CobolLine; +import org.openmainframeproject.cobolcheck.services.cobolLogic.Interpreter; +import org.openmainframeproject.cobolcheck.services.cobolLogic.TokenExtractor; import java.io.*; import java.nio.file.Files; @@ -17,18 +20,25 @@ /** * Expand copybooks referenced by the code under test. * - * In the general use case, COPY statements are left alone and the compiler handles expansion. + * In the general use case, COPY statements are left alone and the compiler + * handles expansion. * - * Cobol-check runs as a precompiler and does not "see" the expanded Cobol source code. + * Cobol-check runs as a precompiler and does not "see" the expanded Cobol + * source code. * There are two cases in which cobol-check may need to "see" the expanded code. * - * 1. If source statements pertinent to a mock are contained in copybooks, cobol-check needs to + * 1. If source statements pertinent to a mock are contained in copybooks, + * cobol-check needs to * be able to comment-out those statements in the merged test program. * - * 2. IBM z/OS compilers support nested COPY statements with the REPLACING option. Off-platform - * compilers written by others do not support this, as it is an IBM extension to Cobol. When the - * code under test uses this feature, and cobol-check is running on a platform other than z/OS, - * cobol-check needs to expand the copybooks recursively during preprocessing so the compilation will work. + * 2. IBM z/OS compilers support nested COPY statements with the REPLACING + * option. Off-platform + * compilers written by others do not support this, as it is an IBM extension to + * Cobol. When the + * code under test uses this feature, and cobol-check is running on a platform + * other than z/OS, + * cobol-check needs to expand the copybooks recursively during preprocessing so + * the compilation will work. * * @author Dave Nicolette (neopragma) * @since 14 @@ -38,7 +48,6 @@ public class CopybookExpander { private final String pathToCopybooks; private final List copybookFilenameSuffixes; - public CopybookExpander() { pathToCopybooks = getPathToCopybooks(); copybookFilenameSuffixes = Config.getCopybookFilenameSuffixes(); @@ -50,7 +59,7 @@ public List expand(List expandedLines, String copybookFilename) } public List expand(List expandedLines, String copybookFilename, - StringTuple... textReplacement) throws IOException { + StringTuple... textReplacement) throws IOException { String fullPath = PathHelper.findFilePath(pathToCopybooks, copybookFilename, copybookFilenameSuffixes); if (fullPath == null) throw new IOException("could not find copybook " + copybookFilename + " in " + pathToCopybooks); @@ -121,4 +130,28 @@ private String getPathToCopybooks() { return PathHelper.endWithFileSeparator(Config.getCopyBookSourceDirectoryPathString()); } + public List expandDB2(List expandedLines, String copybookFilename, + StringTuple... textReplacement) throws IOException { + String fullPath = PathHelper.findFilePath(pathToCopybooks, copybookFilename, copybookFilenameSuffixes); + if (fullPath == null) + throw new IOException("could not find copybook " + copybookFilename + " in " + pathToCopybooks); + try (BufferedReader copybookReader = new BufferedReader(new FileReader(new File(fullPath)))) { + String sourceLine; + while ((sourceLine = copybookReader.readLine()) != null) { + if (sourceLine.contains(Constants.EXEC_SQL_TOKEN)) { + while (!sourceLine.contains(Constants.END_EXEC_TOKEN)) { + sourceLine = copybookReader.readLine(); + } + sourceLine = copybookReader.readLine(); + } + if(!sourceLine.isEmpty()) { + if(!Interpreter.isComment(sourceLine)) { + expandedLines.add(sourceLine); + } + } + } + } + return expandedLines; + } + } diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java index 2bdfc73e..66cbba6a 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java @@ -6,14 +6,11 @@ import org.openmainframeproject.cobolcheck.services.Messages; import org.openmainframeproject.cobolcheck.services.Constants; import org.openmainframeproject.cobolcheck.services.cobolLogic.*; -import org.openmainframeproject.cobolcheck.services.log.Log; import java.io.BufferedReader; import java.io.IOException; import java.util.*; -import static org.openmainframeproject.cobolcheck.services.cobolLogic.Interpreter.updateCurrentDataStructure; - public class InterpreterController { private CobolReader reader; private LineRepository lineRepository; @@ -23,8 +20,8 @@ public class InterpreterController { private String possibleMockIdentifier; private String possibleMockType; private List possibleMockArgs; + private List extractedCopyBook; private boolean insideSectionOrParagraphMockBody; - private TreeMap currentDataStructure; public InterpreterController(BufferedReader sourceReader) { if (sourceReader == null) { @@ -35,55 +32,90 @@ public InterpreterController(BufferedReader sourceReader) { lineRepository = new LineRepository(); numericFields = new NumericFields(); tokenExtractor = new StringTokenizerExtractor(); - currentDataStructure = new TreeMap<>(); } - //Getters for lists of specific source lines - public List getFileSectionStatements(){ + // Getters for lists of specific source lines + public List getFileSectionStatements() { return lineRepository.getFileSectionStatements(); } - public List getFileControlStatements() { return lineRepository.getFileControlStatements(); } - public Map getFileIdentifiersAndStatuses() { return lineRepository.getFileIdentifiersAndStatuses(); } - public List getCopyTokens() { return lineRepository.getCopyTokens(); } - //Getters for numeric field info - public DataType getNumericFieldDataTypeFor(String fieldName){ + public List getFileControlStatements() { + return lineRepository.getFileControlStatements(); + } + + public Map getFileIdentifiersAndStatuses() { + return lineRepository.getFileIdentifiersAndStatuses(); + } + + public List getCopyTokens() { + return lineRepository.getCopyTokens(); + } + + // Getters for numeric field info + public DataType getNumericFieldDataTypeFor(String fieldName) { return numericFields.dataTypeOf(fieldName); } - public NumericFields getNumericFields() { return numericFields; } - //Getters from reader - public List getTokensForCurrentLine(){ + public NumericFields getNumericFields() { + return numericFields; + } + + // Getters from reader + public List getTokensForCurrentLine() { return reader.getCurrentLine().getTokens(); } - public List getCurrentStatement(){ + + public List getCurrentStatement() { return convertToStrings(reader.getCurrentStatement()); } - //Getting info from reader - public boolean hasStatementBeenRead(){ + // Getting info from reader + public boolean hasStatementBeenRead() { return reader.hasStatementBeenRead(); } - public boolean isReading(String partOfProgram){ + + public boolean isReading(String partOfProgram) { return reader.isFlagSet(partOfProgram); } - public boolean didLineJustEnter(String partOfProgram) { return partOfProgram.equals(reader.getLineJustEntered()); } - public boolean hasReaderStateChanged() {return reader.getLineJustEntered() != null;} - public boolean currentLineContains(String str){ + + public boolean didLineJustEnter(String partOfProgram) { + return partOfProgram.equals(reader.getLineJustEntered()); + } + + public boolean hasReaderStateChanged() { + return reader.getLineJustEntered() != null; + } + + public boolean currentLineContains(String str) { return reader.getCurrentLine().containsToken(str); } - //Mock info - public boolean isCurrentComponentMockable() { return possibleMockIdentifier != null; } - public String getPossibleMockIdentifier() { return possibleMockIdentifier; } - public String getPossibleMockType() { return possibleMockType; } - public List getPossibleMockArgs() { return possibleMockArgs; } - public boolean isInsideSectionOrParagraphMockBody() {return insideSectionOrParagraphMockBody;} + // Mock info + public boolean isCurrentComponentMockable() { + return possibleMockIdentifier != null; + } + + public String getPossibleMockIdentifier() { + return possibleMockIdentifier; + } + + public String getPossibleMockType() { + return possibleMockType; + } + + public List getPossibleMockArgs() { + return possibleMockArgs; + } + + public boolean isInsideSectionOrParagraphMockBody() { + return insideSectionOrParagraphMockBody; + } + public void setInsideSectionOrParagraphMockBody(boolean insideSectionOrParagraphMockBody) { this.insideSectionOrParagraphMockBody = insideSectionOrParagraphMockBody; } - public boolean shouldCurrentLineBeParsed(){ + public boolean shouldCurrentLineBeParsed() { if (hasStatementBeenRead() && !getCurrentStatement().isEmpty()) return Interpreter.shouldLineBeParsed(reader.getCurrentStatement().get(0), reader.getState()); else @@ -91,18 +123,24 @@ public boolean shouldCurrentLineBeParsed(){ } public boolean shouldCurrentLineBeStubbed() throws IOException { - if (Interpreter.shouldLineBeStubbed(reader.getCurrentLine(), reader.getState())){ - if (!insideSectionOrParagraphMockBody && Interpreter.endsInPeriod(reader.getCurrentLine())) - reader.putNextLine(" ."); - reader.putNextLine(" CONTINUE"); - return true; + if (reader.getState().isFlagSetFor(Constants.PROCEDURE_DIVISION)) + if (Interpreter.shouldLineBeStubbed(reader.getCurrentLine(), reader.getState())) { + if (!insideSectionOrParagraphMockBody && Interpreter.endsInPeriod(reader.getCurrentLine())) + reader.putNextLine(" ."); + reader.putNextLine(" CONTINUE"); + return true; + } + if (reader.getState().isFlagSetFor(Constants.LINKAGE_SECTION)) { + if (Interpreter.shouldLineBeStubbed(reader.getCurrentLine(), reader.getState())) { + return true; + } } return false; } - public boolean shouldCurrentStatementBeStubbed(){ - for (CobolLine line : reader.getCurrentStatement()){ - if (Interpreter.shouldLineBeStubbed(line, reader.getState())){ + public boolean shouldCurrentStatementBeStubbed() { + for (CobolLine line : reader.getCurrentStatement()) { + if (Interpreter.shouldLineBeStubbed(line, reader.getState())) { if (!insideSectionOrParagraphMockBody && Interpreter.endsInPeriod(reader.getCurrentLine())) reader.putNextLine(" ."); reader.putNextLine(" CONTINUE"); @@ -116,109 +154,117 @@ public boolean isCurrentLineEndingSectionOrParagraph() throws IOException { CobolLine nextLine = reader.peekNextMeaningfulLine(); CobolLine lineFollowingNext = reader.peekNextMeaningfulLine(); - return Interpreter.lineEndsParagraphOrSection(reader.getCurrentLine(), nextLine, lineFollowingNext, reader.getState()); + return Interpreter.lineEndsParagraphOrSection(reader.getCurrentLine(), nextLine, lineFollowingNext, + reader.getState()); } - public boolean isCurrentLineEndingWorkingStorageSection(){ - return (reader.getCurrentLine().containsToken(Constants.LOCAL_STORAGE_SECTION)|| - reader.getCurrentLine().containsToken(Constants.LINKAGE_SECTION)|| + public boolean isCurrentLineEndingWorkingStorageSection() { + return (reader.getCurrentLine().containsToken(Constants.LOCAL_STORAGE_SECTION) || + reader.getCurrentLine().containsToken(Constants.LINKAGE_SECTION) || reader.getCurrentLine().containsToken(Constants.PROCEDURE_DIVISION)); } - public boolean canWriteEndEvaluateBeforeCurrentLine(){ + public boolean canWriteEndEvaluateBeforeCurrentLine() { if (Interpreter.containsOnlyPeriod(reader.getCurrentLine())) return true; - else if (Interpreter.endsInPeriod(reader.getCurrentLine())){ - reader.putNextLine(" ."); - return false; - } + else if (Interpreter.endsInPeriod(reader.getCurrentLine())) { + reader.putNextLine(" ."); + return false; + } return false; } - /**Interprets the next line from the source file. Based on the line, the following values + /** + * Interprets the next line from the source file. Based on the line, the + * following values * will be updated: * - Current line * - Current tokens * - previous line * The following values can be updated, based on the line: * - Current statement (only if multiline statement was read) - * - The state of the reader (flags that shows what part of the program we are reading) + * - The state of the reader (flags that shows what part of the program we are + * reading) * - List of FILE SECTION statements * - List of FILE CONTROL statements * - List mapping file identifiers to statuses * - List of copy tokens * - Numeric fields - * If the line is part of a longer statement, the reader might read multiple lines. + * If the line is part of a longer statement, the reader might read multiple + * lines. + * * @return The line that was read as a string */ - public String interpretNextLine(){ + public String interpretNextLine() { CobolLine line; resetPossibleMockValues(); - try{ + try { line = reader.readLine(); - if (line == null){ - if (!hasReadLine){ + if (line == null) { + if (!hasReadLine) { throw new PossibleInternalLogicErrorException(Messages.get("ERR007")); } return null; } - if (reader.getLineNumber() == 1){ + if (reader.getLineNumber() == 1) { updateCBLOptions(line); } - if (Interpreter.isMeaningful(line)){ + if (Interpreter.isMeaningful(line)) { updateDependencies(line); hasReadLine = true; } - } catch (IOException ex){ + } catch (IOException ex) { throw new CobolSourceCouldNotBeReadException(ex); } - //Current line might change from when it was originally read + // Current line might change from when it was originally read return reader.getCurrentLine().getUnNumberedString(); } - public void closeReader(){ - try{ + public void closeReader() { + try { reader.close(); - } catch (IOException ex){ + } catch (IOException ex) { throw new CobolSourceCouldNotBeReadException(ex); } } - /**Updates dependencies of the interpreter. - * The following values can be updated, based on the given line: + /** + * Updates dependencies of the interpreter. + * The following values can be updated, based on the given line: * - Current statement (only if multiline statement was read) - * - The state of the reader (flags that shows what part of the program we are reading) + * - The state of the reader (flags that shows what part of the program we are + * reading) * - List of FILE SECTION statements * - List of FILE CONTROL statements * - List mapping file identifiers to statuses * - List of copy tokens * - Numeric fields - * @param line - The line the update is based upon + * + * @param line - The line the update is based upon */ private void updateDependencies(CobolLine line) throws IOException { reader.updateState(); updateLineRepository(line); - if (Interpreter.shouldLineBeReadAsStatement(line, reader.getState())){ + if (Interpreter.shouldLineBeReadAsStatement(line, reader.getState())) { reader.readTillEndOfStatement(); } - if (reader.isFlagSet(Constants.SPECIAL_NAMES_PARAGRAPH)){ + if (reader.isFlagSet(Constants.SPECIAL_NAMES_PARAGRAPH)) { updateDecimalPointIsComma(line); } - if (reader.isFlagSet(Constants.DATA_DIVISION)){ - this.currentDataStructure = updateCurrentDataStructure(line, currentDataStructure); + if (reader.isFlagSet(Constants.DATA_DIVISION)) { updateNumericFields(line); } - if (reader.isFlagSet(Constants.PROCEDURE_DIVISION)){ + if (reader.isFlagSet(Constants.PROCEDURE_DIVISION)) { updatePossibleMock(line); updatePossibleStub(line); tryReadBatchFileIOStatement(); @@ -229,7 +275,7 @@ private void updateDecimalPointIsComma(CobolLine line) { List orderedDecimalIsCommaKeywords = Arrays.asList(Constants.DECIMAL_POINT_KEYWORD, Constants.IS_TOKEN, Constants.COMMA_KEYWORD); - if (line.containsAllTokensInConsecutiveOrder(orderedDecimalIsCommaKeywords)){ + if (line.containsAllTokensInConsecutiveOrder(orderedDecimalIsCommaKeywords)) { Config.setDecimalPointIsComma(true); } } @@ -238,42 +284,46 @@ private void updateReplaceStatement(CobolLine line) { List orderedDecimalIsCommaKeywords = Arrays.asList(Constants.DECIMAL_POINT_KEYWORD, Constants.IS_TOKEN, Constants.COMMA_KEYWORD); - if (line.containsAllTokensInConsecutiveOrder(orderedDecimalIsCommaKeywords)){ + if (line.containsAllTokensInConsecutiveOrder(orderedDecimalIsCommaKeywords)) { Config.setDecimalPointIsComma(true); } } - /**Updates possibleMockIdentifier, possibleMockType and possibleMockArgs + /** + * Updates possibleMockIdentifier, possibleMockType and possibleMockArgs * if a specific part of the program was just entered. + * * @param line - The line the update is based upon */ private void updatePossibleMock(CobolLine line) throws IOException { boolean periodShouldBeOnThisLine = false; CobolLine nextLine = reader.peekNextMeaningfulLine(); - if (Interpreter.isSectionHeader(line, reader.getState())){ + if (Interpreter.isSectionHeader(line, reader.getState())) { possibleMockIdentifier = Interpreter.getSectionOrParagraphName(line); possibleMockType = Constants.SECTION_TOKEN; possibleMockArgs = new ArrayList<>(); periodShouldBeOnThisLine = true; } - if (Interpreter.isParagraphHeader(line, nextLine, reader.getState())){ + if (Interpreter.isParagraphHeader(line, nextLine, reader.getState())) { possibleMockIdentifier = Interpreter.getSectionOrParagraphName(line); possibleMockType = Constants.PARAGRAPH_TOKEN; possibleMockArgs = new ArrayList<>(); periodShouldBeOnThisLine = true; } - if (didLineJustEnter(Constants.CALL_TOKEN)){ + if (didLineJustEnter(Constants.CALL_TOKEN)) { CobolLine statement = reader.readStatementAsOneLine(); - possibleMockIdentifier = statement.getToken(statement.getTokenIndexOf(Constants.CALL_TOKEN)+1); + possibleMockIdentifier = statement.getToken(statement.getTokenIndexOf(Constants.CALL_TOKEN) + 1); possibleMockType = Constants.CALL_TOKEN; possibleMockArgs = Interpreter.getUsingArgs(statement); } if (possibleMockIdentifier != null && periodShouldBeOnThisLine && !Interpreter.endsInPeriod(line) - && Interpreter.containsOnlyPeriod(nextLine)){ - //We might generate code after the current line, thus if the period is on the next line, - //we append it to this line. This prevents us generating code in the wrong place. + && Interpreter.containsOnlyPeriod(nextLine)) { + // We might generate code after the current line, thus if the period is on the + // next line, + // we append it to this line. This prevents us generating code in the wrong + // place. reader.appendNextMeaningfulLineToCurrentLine(); } } @@ -286,44 +336,46 @@ private void updatePossibleStub(CobolLine line) throws IOException { } } - /**If the current line is a batch file IO statement, the reader will read the + /** + * If the current line is a batch file IO statement, the reader will read the * whole statement no matter how many lines it spans. */ - private void tryReadBatchFileIOStatement(){ + private void tryReadBatchFileIOStatement() { CobolLine line = reader.getCurrentLine(); - if (Interpreter.checkForBatchFileIOStatement(line)){ - try{ + if (Interpreter.checkForBatchFileIOStatement(line)) { + try { reader.readTillEndOfStatement(); - } catch (IOException ex){ + } catch (IOException ex) { throw new CobolSourceCouldNotBeReadException(ex); } } } - /**If the current line is a numeric field, it will be added to the list of numeric fields. - * We need to save field names of numeric data items in the DATA DIVISION in case a test case - * references them. There's no way to distinguish numeric fields while reading the PROCEDURE + + /** + * If the current line is a numeric field, it will be added to the list of + * numeric fields. + * We need to save field names of numeric data items in the DATA DIVISION in + * case a test case + * references them. There's no way to distinguish numeric fields while reading + * the PROCEDURE * DIVISION. */ private void updateNumericFields(CobolLine line) { if (line.tokensSize() > 1) { - String variableNameWeWantToSave = line.getToken(1); - - if (!this.currentDataStructure.isEmpty()) { - variableNameWeWantToSave = generateVariableNameBasedOnDataStructure(this.currentDataStructure); - } if (line.containsToken(Constants.COMP_3_VALUE)) { - numericFields.setDataTypeOf(variableNameWeWantToSave.toUpperCase(Locale.ROOT), DataType.PACKED_DECIMAL); + numericFields.setDataTypeOf(line.getToken(1).toUpperCase(Locale.ROOT), DataType.PACKED_DECIMAL); } else { if (line.containsToken(Constants.COMP_VALUE)) { - numericFields.setDataTypeOf(variableNameWeWantToSave.toUpperCase(Locale.ROOT), DataType.FLOATING_POINT); + numericFields.setDataTypeOf(line.getToken(1).toUpperCase(Locale.ROOT), DataType.FLOATING_POINT); } else { int ix = 0; for (String token : line.getTokens()) { if (token.equalsIgnoreCase(Constants.PIC_VALUE) || (token.equalsIgnoreCase(Constants.PICTURE_VALUE))) { if (Interpreter.isInNumericFormat(line.getToken(ix + 1))) { - numericFields.setDataTypeOf(variableNameWeWantToSave.toUpperCase(Locale.ROOT), DataType.DISPLAY_NUMERIC); + numericFields.setDataTypeOf(line.getToken(1).toUpperCase(Locale.ROOT), + DataType.DISPLAY_NUMERIC); } break; } @@ -335,61 +387,68 @@ private void updateNumericFields(CobolLine line) { } /** - * In order for us to verify wether a given field is numeric, we need to generate a key, - * based on how the datastructure for the field is referenced. - * We will generate this key, by using the fieldname and seperate each datastructure value - * with a comma. - * Example: FIELD IN DATA2 OF DATA1 will get the following key: FIELD,DATA2,DATA1 - */ - private String generateVariableNameBasedOnDataStructure(TreeMap dataStructure) { - NavigableMap descendingMap = dataStructure.descendingMap(); - Collection structureValues = descendingMap.values(); - return String.join(",",structureValues); - } - - /** - * Updates the line repository with the given line, if it might have further use when testing. - * Lines ahead of the current one, might be peeked or even read, if the current statement spans - * multiple lines. If the line fits any of below it will be saved in the repository: + * Updates the line repository with the given line, if it might have further use + * when testing. + * Lines ahead of the current one, might be peeked or even read, if the current + * statement spans + * multiple lines. If the line fits any of below it will be saved in the + * repository: * - It is a line read under FILE CONTROL - * - It has a SELECT token. File identifier and corresponding FILE STATUS will be saved + * - It has a SELECT token. File identifier and corresponding FILE STATUS will + * be saved * - It contains a copy token - * - It is a file section statement (file section statements from referenced copybooks are also included) + * - It is a file section statement (file section statements from referenced + * copybooks are also included) + * - It has an SQL statement and within le WORKING SECTION + * * @param line - current source line */ private void updateLineRepository(CobolLine line) throws IOException { - if (reader.isFlagSet(Constants.FILE_CONTROL)){ + if (reader.isFlagSet(Constants.FILE_CONTROL)) { lineRepository.addFileControlStatement(line.getUnNumberedString()); updateLineRepoBySelectToken(line); updateLineRepoByFileStatusToken(line); } - if(reader.isFlagSet(Constants.FILE_SECTION) && reader.isFlagSet(Constants.FD_TOKEN)){ - if (line.containsToken(Constants.COPY_TOKEN)){ + if (reader.isFlagSet(Constants.FILE_SECTION) && reader.isFlagSet(Constants.FD_TOKEN)) { + if (line.containsToken(Constants.COPY_TOKEN)) { updateLineRepoByCopyStatement(); - lineRepository.addExpandedCopyStatementsToFileSectionStatements(); - } - else if(reader.isFlagSet(Constants.LEVEL_01_TOKEN)){ + extractedCopyBook = lineRepository.addExpandedCopyStatementsToFileSectionStatements(); + for (int i = 0; i < extractedCopyBook.size(); i++) { + CobolLine cobolLine = new CobolLine(extractedCopyBook.get(i), tokenExtractor); + updateNumericFields(cobolLine); + } + } else if (reader.isFlagSet(Constants.LEVEL_01_TOKEN)) { lineRepository.addFileSectionStatement(line.getUnNumberedString()); } } + if (reader.isFlagSet(Constants.WORKING_STORAGE_SECTION) && + line.containsToken(Constants.EXEC_SQL_TOKEN) && + (line.containsToken(Constants.INCLUDE) + || reader.peekNextMeaningfulLine().containsToken(Constants.INCLUDE))) { + extractedCopyBook = lineRepository.addExpandedCopyDB2Statements(reader.readStatementAsOneLine()); + for (int i = 0; i < extractedCopyBook.size(); i++) { + CobolLine cobolLine = new CobolLine(extractedCopyBook.get(i), tokenExtractor); + updateNumericFields(cobolLine); + } + } } /** - * If the given line contains a SELECT token, the file identifier will be added, waiting for + * If the given line contains a SELECT token, the file identifier will be added, + * waiting for * a mapping to a corresponding file status. + * * @param line - current source line */ - private void updateLineRepoBySelectToken(CobolLine line){ - if (line.containsToken(Constants.SELECT_TOKEN)){ + private void updateLineRepoBySelectToken(CobolLine line) { + if (line.containsToken(Constants.SELECT_TOKEN)) { if (line.tokensSize() > 1) { lineRepository.addFileIdentifierWithNoStatus(line.getToken(1)); - } - else { + } else { // First token on the next line should be the file identifier String nextLineToken0 = peekNextMeaningfulLineAndGetTokenAtIndex0(); - if (nextLineToken0 == null) - { + if (nextLineToken0 == null) { throw new PossibleInternalLogicErrorException("Line after SELECT is empty"); } lineRepository.addFileIdentifierWithNoStatus(nextLineToken0); @@ -398,31 +457,33 @@ private void updateLineRepoBySelectToken(CobolLine line){ } /** - * If the given line contains a file status token, it will be added to a map to a + * If the given line contains a file status token, it will be added to a map to + * a * corresponding file identifier. + * * @param line - current source line */ private void updateLineRepoByFileStatusToken(CobolLine line) throws IOException { - if (line.containsToken(Constants.FILE_STATUS_TOKEN)){ - if (Interpreter.isEndOfStatement(line, reader.peekNextMeaningfulLine())){ - //File status statement is on one line + if (line.containsToken(Constants.FILE_STATUS_TOKEN)) { + if (Interpreter.isEndOfStatement(line, reader.peekNextMeaningfulLine())) { + // File status statement is on one line if (line.tokensSize() > 2) { if (line.getToken(1).equalsIgnoreCase(Constants.IS_TOKEN)) { lineRepository.addStatusForLastSetIdentifier(line.getToken(2)); } - } - else if (line.tokensSize() > 1){ + } else if (line.tokensSize() > 1) { if (!line.containsToken(Constants.IS_TOKEN)) { lineRepository.addStatusForLastSetIdentifier(line.getToken(1)); } } } else { - //File status statement is written across multiple lines + // File status statement is written across multiple lines List statement = reader.readTillEndOfStatement(); - for (CobolLine l : statement){ + for (CobolLine l : statement) { List tokens = l.getTokens(); - for(String token : tokens){ - if (!token.equalsIgnoreCase(Constants.FILE_STATUS_TOKEN) && !token.equalsIgnoreCase(Constants.IS_TOKEN)){ + for (String token : tokens) { + if (!token.equalsIgnoreCase(Constants.FILE_STATUS_TOKEN) + && !token.equalsIgnoreCase(Constants.IS_TOKEN)) { lineRepository.addStatusForLastSetIdentifier(token); } } @@ -436,65 +497,62 @@ else if (line.tokensSize() > 1){ * Reads the whole copy statement and adds each token of each line, to a list * of copy tokens. */ - private void updateLineRepoByCopyStatement(){ + private void updateLineRepoByCopyStatement() { List copystatementLines; - try{ + try { copystatementLines = reader.readTillEndOfStatement(); - } catch (IOException ex){ + } catch (IOException ex) { throw new CobolSourceCouldNotBeReadException(ex); } - if (copystatementLines == null) - { + if (copystatementLines == null) { throw new PossibleInternalLogicErrorException("Copy statements was read as null"); } - for(CobolLine line : copystatementLines){ - if(!Interpreter.isComment(line) && !Interpreter.isEmpty(line) && !Interpreter.isTooShortToBeMeaningful(line)){ + for (CobolLine line : copystatementLines) { + if (!Interpreter.isComment(line) && !Interpreter.isEmpty(line) + && !Interpreter.isTooShortToBeMeaningful(line)) { lineRepository.addAccumulatedTokensFromCopyStatementToCopyTokens(line.getUnNumberedString()); } } } - private void updateCBLOptions(CobolLine line){ + private void updateCBLOptions(CobolLine line) { String appendOptions = Config.getAppendRulesAndOptions(); - if (appendOptions != null){ - if (line.containsToken(Constants.CBL_TOKEN)){ + if (appendOptions != null) { + if (line.containsToken(Constants.CBL_TOKEN)) { line = reader.appendToCurrentLine(", " + appendOptions); - } - else { + } else { reader.addLineBeforeCurrentRead(" " + Constants.CBL_TOKEN + " " + appendOptions); } } } - private String peekNextMeaningfulLineAndGetTokenAtIndex0() - { + private String peekNextMeaningfulLineAndGetTokenAtIndex0() { CobolLine peekedLine; - try{ + try { peekedLine = reader.peekNextMeaningfulLine(); - } catch (IOException ex){ + } catch (IOException ex) { throw new CobolSourceCouldNotBeReadException(ex); } - if (peekedLine != null && peekedLine.tokensSize() > 0){ + if (peekedLine != null && peekedLine.tokensSize() > 0) { return peekedLine.getToken(0); - } - else { + } else { return null; } } - private List convertToStrings(List lines){ + private List convertToStrings(List lines) { List stringLines = new ArrayList<>(); - for (CobolLine l : lines){ + for (CobolLine l : lines) { stringLines.add(l.getUnNumberedString()); } return stringLines; } - private void resetPossibleMockValues(){ + private void resetPossibleMockValues() { possibleMockIdentifier = null; possibleMockType = null; } diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/LineRepository.java b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/LineRepository.java index 1b04f425..6f332ab3 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/LineRepository.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/LineRepository.java @@ -1,9 +1,11 @@ package org.openmainframeproject.cobolcheck.features.interpreter; +import org.openmainframeproject.cobolcheck.exceptions.CopybookCouldNotBeExpanded; import org.openmainframeproject.cobolcheck.exceptions.PossibleInternalLogicErrorException; import org.openmainframeproject.cobolcheck.services.Constants; import org.openmainframeproject.cobolcheck.services.Messages; import org.openmainframeproject.cobolcheck.services.StringTuple; +import org.openmainframeproject.cobolcheck.services.cobolLogic.CobolLine; import java.io.IOException; import java.util.ArrayList; @@ -96,7 +98,7 @@ void addAccumulatedTokensFromCopyStatementToCopyTokens(String line) { } } - void addExpandedCopyStatementsToFileSectionStatements() { + List addExpandedCopyStatementsToFileSectionStatements() { for (int i = 0 ; i < copyTokens.size() ; i++) { if (copyTokens.get(i).equals(Constants.EMPTY_STRING)) { copyTokens.remove(i); @@ -128,5 +130,21 @@ void addExpandedCopyStatementsToFileSectionStatements() { ioException.printStackTrace(); } fileSectionStatements.addAll(copyLines); + return copyLines; + } + + List addExpandedCopyDB2Statements(CobolLine line) throws IOException { + List copyLines = new ArrayList<>(); + CopybookExpander copybookExpander = new CopybookExpander(); + String copybookName = line.getToken(2); + StringTuple replacingValues = new StringTuple(null, null); + + try { + copyLines = copybookExpander.expandDB2(copyLines, copybookName, replacingValues); + } catch (IOException ioEx) { + throw new CopybookCouldNotBeExpanded(ioEx); + } + fileSectionStatements.addAll(copyLines); + return copyLines; } } diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/Formatter/Formats/Formatter.java b/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/Formatter/Formats/Formatter.java index eac8c768..b3f77cd4 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/Formatter/Formats/Formatter.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/Formatter/Formats/Formatter.java @@ -115,8 +115,7 @@ else if (expectNumberFailed){ dataTransferObject.setNumberOffAllFailures(tokens[0]); } - else if (line.trim().toUpperCase(Locale.ROOT).startsWith(passKeyword) || - line.trim().toUpperCase(Locale.ROOT).startsWith(failPrefixKeyword + " " + failKeyword)){ + else{ try{ setTestCaseValues(line); } catch (PossibleInternalLogicErrorException e){ diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/LaunchHelper.java b/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/LaunchHelper.java deleted file mode 100644 index fbc97b3a..00000000 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/LaunchHelper.java +++ /dev/null @@ -1,32 +0,0 @@ -package org.openmainframeproject.cobolcheck.features.launcher; - -import java.util.List; - -public class LaunchHelper { - static String[] generateCommandParms(String processKey, String programName, List compileOptions, boolean surroundWithQuotes) { - /* We want to make a String[] that contains the processKey, - * programName and then list every compile option afterwards. - * Hence the compileOptions size+2 - */ - int commandParmsSize = compileOptions.size()+2; - String[] commandParms = new String[commandParmsSize]; - commandParms[0] = processKey; - if (surroundWithQuotes) - commandParms[1] = "\"" + programName + "\""; - else - commandParms[1] = programName; - /* We want to start at index 2 and add the 1st value from - * the compileOptionsList, hence why we subtract 2 from the - * index value in compileOptions.get() - We then get the value - * from index 0 - */ - for (int i = 2; i < commandParmsSize; i++) { - if (surroundWithQuotes) - commandParms[i] = "\"" + compileOptions.get(i-2) + "\""; - else - commandParms[i] = compileOptions.get(i-2); - - } - return commandParms; - } -} diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/LinuxProcessLauncher.java b/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/LinuxProcessLauncher.java index 814e54b8..49157743 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/LinuxProcessLauncher.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/LinuxProcessLauncher.java @@ -9,7 +9,6 @@ import org.openmainframeproject.cobolcheck.services.Constants; import java.io.IOException; -import java.util.List; /** * Launch a script to compile and execute a generated test program (Cobol) @@ -58,12 +57,8 @@ public Process run(String programName) { if (!scriptDirectory.endsWith(Constants.FILE_SEPARATOR)) { scriptDirectory += Constants.FILE_SEPARATOR; } - - List compileOptions = Config.getGnuCOBOLCompileOptions(); - String[] commandParms = LaunchHelper.generateCommandParms(scriptDirectory + scriptName, programName, compileOptions, false); - ProcessBuilder processBuilder = new ProcessBuilder(); - processBuilder.command(commandParms); + processBuilder.command(scriptDirectory + scriptName, programName); Process process = null; StringBuilder processArguments = new StringBuilder(); @@ -84,4 +79,5 @@ public Process run(String programName) { return process; } + } diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/WindowsProcessLauncher.java b/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/WindowsProcessLauncher.java index f6399b8c..96274ae4 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/WindowsProcessLauncher.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/WindowsProcessLauncher.java @@ -8,7 +8,6 @@ import org.openmainframeproject.cobolcheck.services.Constants; import java.io.*; -import java.util.List; /** * Launch a script to compile and execute a generated test program (Cobol) @@ -52,12 +51,8 @@ public Process run(String programName) { if (!scriptDirectory.endsWith(Constants.FILE_SEPARATOR)) { scriptDirectory += Constants.FILE_SEPARATOR; } - - List compileOptions = Config.getGnuCOBOLCompileOptions(); - String[] commandParms = LaunchHelper.generateCommandParms(scriptDirectory + scriptName, programName, compileOptions, true); - ProcessBuilder processBuilder = new ProcessBuilder(); - processBuilder.command(commandParms); + processBuilder.command(scriptDirectory + scriptName, "\"" + programName + "\""); Process process = null; StringBuilder processArguments = new StringBuilder(); @@ -77,4 +72,8 @@ public Process run(String programName) { } return process; } -} \ No newline at end of file + + + + +} diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Keywords.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Keywords.java index 93958d7d..6ceebf4d 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Keywords.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Keywords.java @@ -126,9 +126,7 @@ public class Keywords { new HashMap>() {{ put(Constants.EXPECT_KEYWORD, Arrays.asList( Constants.ALPHANUMERIC_LITERAL_KEYWORD, - Constants.NUMERIC_LITERAL_KEYWORD, - Constants.BOOLEAN_VALUE, - Constants.COBOL_TOKEN) + Constants.NUMERIC_LITERAL_KEYWORD) ); }}, KeywordAction.REVERSE_LOGIC)); @@ -139,7 +137,6 @@ public class Keywords { Arrays.asList(), new HashMap>() {{ put(Constants.EXPECT_KEYWORD, Arrays.asList( - Constants.NUMERIC_KEYWORD, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, Constants.BOOLEAN_VALUE, @@ -154,11 +151,9 @@ public class Keywords { Arrays.asList(), new HashMap>() {{ put(Constants.EXPECT_KEYWORD, Arrays.asList( - Constants.NUMERIC_KEYWORD, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, - Constants.BOOLEAN_VALUE, - Constants.COBOL_TOKEN) + Constants.BOOLEAN_VALUE) ); }}, KeywordAction.EXPECTED_VALUE)); @@ -167,18 +162,15 @@ public class Keywords { keywordInfo.put(Constants.EQUAL_SIGN_KEYWORD, new Keyword(Constants.EQUAL_SIGN_KEYWORD, Arrays.asList(Constants.FIELDNAME_KEYWORD, - Constants.NUMERIC_KEYWORD, Constants.COBOL_TOKEN, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, Constants.BOOLEAN_VALUE), new HashMap>() {{ put(Constants.EXPECT_KEYWORD, Arrays.asList( - Constants.NUMERIC_KEYWORD, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, - Constants.BOOLEAN_VALUE, - Constants.COBOL_TOKEN) + Constants.BOOLEAN_VALUE) ); }}, KeywordAction.EXPECTED_VALUE)); @@ -187,18 +179,15 @@ public class Keywords { keywordInfo.put(Constants.GREATER_THAN_SIGN_KEYWORD, new Keyword(Constants.GREATER_THAN_SIGN_KEYWORD, Arrays.asList(Constants.FIELDNAME_KEYWORD, - Constants.NUMERIC_KEYWORD, Constants.COBOL_TOKEN, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, Constants.BOOLEAN_VALUE), new HashMap>() {{ put(Constants.EXPECT_KEYWORD, Arrays.asList( - Constants.NUMERIC_KEYWORD, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, - Constants.BOOLEAN_VALUE, - Constants.COBOL_TOKEN) + Constants.BOOLEAN_VALUE) ); }}, KeywordAction.EXPECTED_VALUE)); @@ -207,18 +196,15 @@ public class Keywords { keywordInfo.put(Constants.GREATER_THAN_EQUAL_TO_SIGN_KEYWORD, new Keyword(Constants.GREATER_THAN_EQUAL_TO_SIGN_KEYWORD, Arrays.asList(Constants.FIELDNAME_KEYWORD, - Constants.NUMERIC_KEYWORD, Constants.COBOL_TOKEN, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, Constants.BOOLEAN_VALUE), new HashMap>() {{ put(Constants.EXPECT_KEYWORD, Arrays.asList( - Constants.NUMERIC_KEYWORD, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, - Constants.BOOLEAN_VALUE, - Constants.COBOL_TOKEN) + Constants.BOOLEAN_VALUE) ); }}, KeywordAction.EXPECTED_VALUE)); @@ -227,18 +213,15 @@ public class Keywords { keywordInfo.put(Constants.LESS_THAN_SIGN_KEYWORD, new Keyword(Constants.LESS_THAN_SIGN_KEYWORD, Arrays.asList(Constants.FIELDNAME_KEYWORD, - Constants.NUMERIC_KEYWORD, Constants.COBOL_TOKEN, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, Constants.BOOLEAN_VALUE), new HashMap>() {{ put(Constants.EXPECT_KEYWORD, Arrays.asList( - Constants.NUMERIC_KEYWORD, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, - Constants.BOOLEAN_VALUE, - Constants.COBOL_TOKEN) + Constants.BOOLEAN_VALUE) ); }}, KeywordAction.EXPECTED_VALUE)); @@ -247,32 +230,15 @@ public class Keywords { keywordInfo.put(Constants.LESS_THAN_EQUAL_TO_SIGN_KEYWORD, new Keyword(Constants.LESS_THAN_EQUAL_TO_SIGN_KEYWORD, Arrays.asList(Constants.FIELDNAME_KEYWORD, - Constants.NUMERIC_KEYWORD, Constants.COBOL_TOKEN, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, Constants.BOOLEAN_VALUE), new HashMap>() {{ put(Constants.EXPECT_KEYWORD, Arrays.asList( - Constants.NUMERIC_KEYWORD, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, - Constants.BOOLEAN_VALUE, - Constants.COBOL_TOKEN) - ); - }}, - KeywordAction.EXPECTED_VALUE)); - - //--------------------------------NUMERIC - keywordInfo.put(Constants.NUMERIC_KEYWORD, - new Keyword(Constants.NUMERIC_KEYWORD, - Arrays.asList(), - new HashMap>() {{ - put(Constants.EXPECT_KEYWORD, Arrays.asList( - Constants.ALPHANUMERIC_LITERAL_KEYWORD, - Constants.NUMERIC_LITERAL_KEYWORD, - Constants.BOOLEAN_VALUE, - Constants.COBOL_TOKEN) + Constants.BOOLEAN_VALUE) ); }}, KeywordAction.EXPECTED_VALUE)); diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteErrorLog.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteErrorLog.java index e5abcab2..6b771043 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteErrorLog.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteErrorLog.java @@ -148,15 +148,6 @@ public void logUnusedMocks(List mocks){ } } - public void logVariableTypeMismatch(String expectedType, String actualType, String currentFile, int lineNumber, int lineIndex){ - String error = ""; - error += String.format(fileMessage, displayErrorType(ErrorTypes.WARNING), currentFile) + ":" + lineNumber + ":" + lineIndex + ":" + Constants.NEWLINE; - error += String.format(lineIndexMessage, lineNumber, lineIndex) + Constants.NEWLINE; - error += "Expected compare to be of type <" + expectedType +">, but the variable was classified as the type <" + actualType + ">" + Constants.NEWLINE; - error += "The test was carried out with the compare type <" + actualType + ">" + Constants.NEWLINE + Constants.NEWLINE; - outputError(error); - } - private void outputError(String error) { errorLogMessages += error; System.out.println(error); diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index 7d22aae0..3547f04f 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -8,8 +8,10 @@ import java.io.BufferedReader; import java.io.IOException; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Locale; +import java.util.regex.Pattern; /** * Parses the concatenated test suite and writes Cobol test code to the output @@ -74,7 +76,6 @@ public class TestSuiteParser { private int testSuiteNumber = 0; private String currentTestCaseName = Constants.EMPTY_STRING; private int testCaseNumber = 0; - private boolean expectNumericCompare; // Lines inserted into the test program private static final String COBOL_PERFORM_INITIALIZE = " PERFORM %sINITIALIZE"; @@ -306,6 +307,13 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, case Constants.COBOL_TOKEN: case Constants.FIELDNAME_KEYWORD: + // TODO:remove when implementing EXPECT NUMERIC + if (testSuiteToken.equals("NUMERIC")) { + Log.debug( + "==WARNING== is not implemented and could cause unintended behaviour ==WARNING=="); + ignoreCobolStatementAndFieldNameKeyAction = true; + break; + } if (expectQualifiedName) { fieldNameForExpect += testSuiteToken; expectQualifiedName = false; @@ -573,10 +581,6 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, toBeInProgress = true; break; - case Constants.NUMERIC_KEYWORD: - expectNumericCompare = true; - break; - case Constants.QUALIFIED_FIELD_NAME: if (cobolTokenIsFieldName){ fieldNameForExpect += Constants.SPACE + testSuiteToken + Constants.SPACE; @@ -885,10 +889,6 @@ void addIncrementTestCaseCountLine(List parsedTestSuiteLines) { void addTestCodeForAssertion(List parsedTestSuiteLines, NumericFields numericFields) { addSetNormalOrReverseCompare(parsedTestSuiteLines); if (boolean88LevelCompare) { - if (expectNumericCompare){ - testSuiteErrorLog.logVariableTypeMismatch(Constants.NUMERIC_KEYWORD, "BOOLEAN88", - currentTestSuiteRealFile, fileLineNumber, fileLineIndexNumber); - } addTestCodeFor88LevelEqualityCheck(parsedTestSuiteLines); } else { if (fieldIsANumericDataType(fieldNameForExpect)) { @@ -899,10 +899,6 @@ void addTestCodeForAssertion(List parsedTestSuiteLines, NumericFields nu parsedTestSuiteLines.add(String.format( COBOL_MOVE_EXPECTED_NUMERIC_LITERAL, testCodePrefix, expectedValueToCompare)); } else { - if (expectNumericCompare){ - testSuiteErrorLog.logVariableTypeMismatch(Constants.NUMERIC_KEYWORD, "ALPHANUMERIC", - currentTestSuiteRealFile, fileLineNumber, fileLineIndexNumber); - } parsedTestSuiteLines.add(String.format( COBOL_SET_ALPHANUMERIC_COMPARE, testCodePrefix, Constants.TRUE)); parsedTestSuiteLines.add(String.format( @@ -923,7 +919,6 @@ void addTestCodeForAssertion(List parsedTestSuiteLines, NumericFields nu greaterThanComparison = false; lessThanComparison = false; } - expectNumericCompare = false; } void addTestCodeFor88LevelEqualityCheck(List parsedTestSuiteLines) { @@ -1014,21 +1009,10 @@ void addFinalLines(List parsedTestSuiteLines) { * @return true when the field name represents any numeric data type */ boolean fieldIsANumericDataType(String fieldNameForExpect) { - // We want to isolate the datastructure, so we only parse the fieldname and direct referenced structure. - if (fieldNameForExpect != null && !fieldNameForExpect.isEmpty()) { - String[] splitFieldNameForExpect = fieldNameForExpect.split(" "); - fieldNameForExpect = splitFieldNameForExpect[0]; - for (int i = 1; i < splitFieldNameForExpect.length; i+=2) { - if (splitFieldNameForExpect[i].toUpperCase().equals("OF") || splitFieldNameForExpect[i].equals("IN")) { - String inOrOf = splitFieldNameForExpect[i]; - String dataStructureFieldName = splitFieldNameForExpect[i+1]; - if (dataStructureFieldName.contains("(")) - fieldNameForExpect += " " + inOrOf + " " + dataStructureFieldName.substring(0, dataStructureFieldName.indexOf("(")); - else - fieldNameForExpect += " " + splitFieldNameForExpect[i] + " " + splitFieldNameForExpect[i+1]; - } - } - } + // Remove potential qualifiers and indexing, so we only get the single field + // name. + if (fieldNameForExpect != null && !fieldNameForExpect.isEmpty()) + fieldNameForExpect = fieldNameForExpect.split(" ")[0]; return numericFields.dataTypeOf(fieldNameForExpect) == DataType.PACKED_DECIMAL || (numericFields.dataTypeOf(fieldNameForExpect) == DataType.FLOATING_POINT) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/services/Config.java b/src/main/java/org/openmainframeproject/cobolcheck/services/Config.java index d32829ea..61b7e26d 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/services/Config.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/services/Config.java @@ -61,8 +61,6 @@ public class Config { public static final String DEFAULT_TESTSUITE_DIRECTORY = "src/test/cobol"; public static final String COBOLCHECK_SCRIPT_DIRECTORY_CONFIG_KEY = "cobolcheck.script.directory"; public static final String DEFAULT_COBOLCHECK_SCRIPT_DIRECTORY = "./"; - public static final String GNUCOBOL_COMPILE_OPTIONS = "gnucobol.compile.options"; - public static final String RESOLVED_GNUCOBOL_COMPILE_OPTIONS = "resolved.gnucobol.compile.options"; private static Properties settings = null; @@ -333,15 +331,6 @@ public static String getScriptDirectory() { DEFAULT_COBOLCHECK_SCRIPT_DIRECTORY)); } - public static List getGnuCOBOLCompileOptions() { - setGnuCOBOLCompileOptions(); - return (List)settings.get(RESOLVED_GNUCOBOL_COMPILE_OPTIONS); - } - - public static void setGnuCOBOLCompileOptions() { - resolveConfigList(GNUCOBOL_COMPILE_OPTIONS, RESOLVED_GNUCOBOL_COMPILE_OPTIONS); - } - private static void setCopybookFilenameSuffix() { resolveFilenameSuffixes(APPLICATION_COPYBOOK_FILENAME_SUFFIX, RESOLVED_APPLICATION_COPYBOOK_FILENAME_SUFFIX); } @@ -359,19 +348,6 @@ private static void resolveFilenameSuffixes(String configKey, String resolvedCon settings.put(resolvedConfigKey, suffixes); } - private static void resolveConfigList(String configKey, String resolvedConfigKey) { - String configCommaSeperatedList = getString(configKey, "NULL"); - List items = new ArrayList(); - String[] configListValues = null; - if (!configCommaSeperatedList.trim().equalsIgnoreCase("NULL")) { - configListValues = configCommaSeperatedList.split(Constants.COMMA); - for (String item : configListValues) { - items.add(item); - } - } - settings.put(resolvedConfigKey, items); - } - private static void setDefaultLocaleOverride() { if (!settings.containsKey(LOCALE_LANGUAGE_CONFIG_KEY)) { return; diff --git a/src/main/java/org/openmainframeproject/cobolcheck/services/Constants.java b/src/main/java/org/openmainframeproject/cobolcheck/services/Constants.java index 424fc4d6..67b75f08 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/services/Constants.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/services/Constants.java @@ -83,7 +83,6 @@ private Constants() { public static final String END_BEFORE_TOKEN = "END-BEFORE"; public static final String AFTER_EACH_TOKEN = "AFTER EACH"; public static final String END_AFTER_TOKEN = "END-AFTER"; - public static final String NUMERIC_KEYWORD = "NUMERIC"; public static final String IN_KEYWORD = "IN"; public static final String OF_KEYWORD = "OF"; @@ -91,7 +90,7 @@ private Constants() { public static final String BEFORE_EACH_TOKEN_HYPHEN = "BEFORE-EACH"; public static final String AFTER_EACH_TOKEN_HYPHEN = "AFTER-EACH"; public static final String PARA_TOKEN = "PARA"; - public static final List IGNORED_TOKENS = Arrays.asList("END-CALL"); + public static final List IGNORED_TOKENS = Arrays.asList("END-CALL", "NUMERIC"); // Configuration key values public static final String CONCATENATED_TEST_SUITES_CONFIG_KEY = "concatenated.test.suites"; @@ -146,6 +145,7 @@ private Constants() { public static final String EXEC_CICS_TOKEN = "EXEC CICS"; public static final String END_EXEC_TOKEN = "END-EXEC"; public static final String CONTINUE_TOKEN = "CONTINUE"; + public static final String INCLUDE = "INCLUDE"; public static final String COMP_3_VALUE = "COMP-3"; public static final String COMP_VALUE = "COMP"; diff --git a/src/main/java/org/openmainframeproject/cobolcheck/services/StringHelper.java b/src/main/java/org/openmainframeproject/cobolcheck/services/StringHelper.java index f7218093..906ac4c2 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/services/StringHelper.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/services/StringHelper.java @@ -217,10 +217,7 @@ public static boolean isStringContinuationLine(String line) { } public static String moveToAreaB(String line){ - if (line.trim().startsWith("*")) - return " " + line.trim(); - else - return " " + line.trim(); + return " " + line.trim(); } public static List moveToAreaB(List lines){ diff --git a/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java b/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java index 2d9bfb7b..5e89582e 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java @@ -4,7 +4,10 @@ import org.openmainframeproject.cobolcheck.features.interpreter.State; import org.openmainframeproject.cobolcheck.services.Constants; -import java.util.*; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Locale; /* * Used by Writer @@ -14,34 +17,34 @@ public class Interpreter { // Source tokens from Procedure Division that begin batch I/O statements private static final List batchFileIOVerbs = Arrays.asList( - "OPEN", "CLOSE", "READ", "WRITE", "REWRITE", "DELETE", "START" - ); + "OPEN", "CLOSE", "READ", "WRITE", "REWRITE", "DELETE", "START"); - // Used for handling source lines from copybooks that may not have the standard 80-byte length + // Used for handling source lines from copybooks that may not have the standard + // 80-byte length private static final int minimumMeaningfulSourceLineLength = 7; private static final int commentIndicatorOffset = 6; - private static final List commentIndicators = Arrays.asList('*', '/'); + private static final char commentIndicator = '*'; - //Used to find areas + // Used to find areas private static final int sequenceNumberAreaEnd = 6; private static final int indicatorAreaEnd = 7; private static final int A_AreaEnd = 11; private static final int B_AreaEnd = 71; - public static int getSequenceNumberAreaIndex(){ + public static int getSequenceNumberAreaIndex() { return sequenceNumberAreaEnd; } - //TODO: Speed up method by adding 'else if's and putting 'if's inside 'if's + // TODO: Speed up method by adding 'else if's and putting 'if's inside 'if's /** * Sets flags based on a line, to be able to know which kinds of source * statements to look for when reading and interpreting lines. * - * @param line - current source line being processed + * @param line - current source line being processed * @param state - current state of flags * @return - the part of the program just entered or null if no part was entered */ - public static String setFlagsForCurrentLine(CobolLine line, CobolLine nextLine, State state){ + public static String setFlagsForCurrentLine(CobolLine line, CobolLine nextLine, State state) { String partOfProgram = null; if (line.containsToken(Constants.IDENTIFICATION_DIVISION)) { state.setFlagFor(Constants.IDENTIFICATION_DIVISION); @@ -63,7 +66,7 @@ public static String setFlagsForCurrentLine(CobolLine line, CobolLine nextLine, state.setFlagFor(Constants.INPUT_OUTPUT_SECTION); partOfProgram = Constants.INPUT_OUTPUT_SECTION; } - if (line.containsToken(Constants.FILE_CONTROL)){ + if (line.containsToken(Constants.FILE_CONTROL)) { state.setFlagFor(Constants.FILE_CONTROL); partOfProgram = Constants.FILE_CONTROL; } @@ -146,18 +149,18 @@ public static String setFlagsForCurrentLine(CobolLine line, CobolLine nextLine, * (b) - previous line contains just a period * (c) - first token on this line is a Cobol verb * - * @param currentLine - current source line being processed + * @param currentLine - current source line being processed * @param nextMeaningfulLine - next source line that is not empty * @return - true if end of statement is recognized */ public static boolean isEndOfStatement(CobolLine currentLine, CobolLine nextMeaningfulLine) { - if (nextMeaningfulLine == null){ + if (nextMeaningfulLine == null) { return true; } if (currentLine.getTrimmedString().endsWith(Constants.PERIOD)) { return true; } - if (containsOnlyPeriod(nextMeaningfulLine)){ + if (containsOnlyPeriod(nextMeaningfulLine)) { return false; } if (CobolVerbs.isStartOrEndCobolVerb(nextMeaningfulLine.getTokens().get(0))) { @@ -167,11 +170,12 @@ public static boolean isEndOfStatement(CobolLine currentLine, CobolLine nextMean return false; } - public static boolean lineEndsParagraphOrSection(CobolLine currentLine, CobolLine nextLine, CobolLine lineFollowingNext, State state) { + public static boolean lineEndsParagraphOrSection(CobolLine currentLine, CobolLine nextLine, + CobolLine lineFollowingNext, State state) { if (currentLine == null || nextLine == null || lineFollowingNext == null) return true; - if (endsInPeriod(currentLine) || containsOnlyPeriod(currentLine)){ + if (endsInPeriod(currentLine) || containsOnlyPeriod(currentLine)) { return (isSectionHeader(nextLine, state) || isParagraphHeader(nextLine, lineFollowingNext, state)); } return false; @@ -181,10 +185,12 @@ public static boolean lineEndsParagraphOrSection(CobolLine currentLine, CobolLin * This "shouldn't happen." Famous last words. * * @param line - * @return true if the source line is too short to be a meaningful line of code in Cobol. + * @return true if the source line is too short to be a meaningful line of code + * in Cobol. */ public static boolean isTooShortToBeMeaningful(CobolLine line) { - return line.getUnNumberedString() == null || line.getUnNumberedString().length() < minimumMeaningfulSourceLineLength; + return line.getUnNumberedString() == null + || line.getUnNumberedString().length() < minimumMeaningfulSourceLineLength; } /** @@ -192,14 +198,14 @@ public static boolean isTooShortToBeMeaningful(CobolLine line) { * @return true if the source line "looks like" a Cobol comment line. */ public static boolean isComment(CobolLine line) { - return isComment(line.getUnNumberedString()); + return line.getUnNumberedString().charAt(commentIndicatorOffset) == commentIndicator; } public static boolean isComment(String line) { - return commentIndicators.contains(line.charAt(commentIndicatorOffset)); + return line.charAt(commentIndicatorOffset) == commentIndicator; } - public static boolean isMeaningful(CobolLine line){ + public static boolean isMeaningful(CobolLine line) { return line != null && !isEmpty(line) && !isComment(line) && !isTooShortToBeMeaningful(line); } @@ -207,7 +213,7 @@ public static boolean isMeaningful(CobolLine line){ * @param line * @return true if the source line is empty */ - public static boolean isEmpty(CobolLine line){ + public static boolean isEmpty(CobolLine line) { return line.tokensSize() == 0 && !containsOnlyPeriod(line); } @@ -216,17 +222,17 @@ public static boolean isEmpty(CobolLine line){ * @param state * @return true if the source line should be parsed */ - public static boolean shouldLineBeParsed(CobolLine line, State state){ - if (isTooShortToBeMeaningful(line) && line.tokensSize() > 0){ + public static boolean shouldLineBeParsed(CobolLine line, State state) { + if (isTooShortToBeMeaningful(line) && line.tokensSize() > 0) { return false; } - if (state.isFlagSetFor(Constants.FILE_SECTION) && ! (line.containsToken(Constants.FILE_SECTION))){ + if (state.isFlagSetFor(Constants.FILE_SECTION) && !(line.containsToken(Constants.FILE_SECTION))) { if (line.containsToken(Constants.REPLACE_TOKEN)) return true; return false; } - if (state.isFlagSetFor(Constants.FILE_CONTROL)&& ! (line.containsToken(Constants.FILE_CONTROL))){ + if (state.isFlagSetFor(Constants.FILE_CONTROL) && !(line.containsToken(Constants.FILE_CONTROL))) { if (line.containsToken(Constants.REPLACE_TOKEN)) return true; @@ -241,14 +247,20 @@ public static boolean shouldLineBeParsed(CobolLine line, State state){ * @param state * @return true if the source line should be commented out */ - public static boolean shouldLineBeStubbed(CobolLine line, State state){ - if (state.isFlagSetFor(Constants.PROCEDURE_DIVISION)){ + public static boolean shouldLineBeStubbed(CobolLine line, State state) { + if (state.isFlagSetFor(Constants.PROCEDURE_DIVISION)) { if (checkForBatchFileIOStatement(line) || line.containsToken(Constants.CALL_TOKEN) || - line.containsToken(Constants.EXEC_SQL_TOKEN) || line.containsToken(Constants.EXEC_CICS_TOKEN)) - { + line.containsToken(Constants.EXEC_SQL_TOKEN) || line.containsToken(Constants.EXEC_CICS_TOKEN)) { return true; } } + if (state.isFlagSetFor(Constants.WORKING_STORAGE_SECTION)) { + if (line.containsToken(Constants.EXEC_SQL_TOKEN) || line.containsToken(Constants.INCLUDE) || line.containsToken(Constants.END_EXEC_TOKEN)) + return true; + } + if (line.containsToken(Constants.LINKAGE_SECTION)) { + return true; + } return false; } @@ -257,10 +269,14 @@ public static boolean shouldLineBeStubbed(CobolLine line, State state){ * @param state * @return true if the source line should be commented out */ - public static String getStubEndToken(CobolLine line, State state){ - if (state.isFlagSetFor(Constants.PROCEDURE_DIVISION)){ - if (line.containsToken(Constants.EXEC_SQL_TOKEN) || line.containsToken(Constants.EXEC_CICS_TOKEN)) - { + public static String getStubEndToken(CobolLine line, State state) { + if (state.isFlagSetFor(Constants.PROCEDURE_DIVISION)) { + if (line.containsToken(Constants.EXEC_SQL_TOKEN) || line.containsToken(Constants.EXEC_CICS_TOKEN)) { + return Constants.END_EXEC_TOKEN; + } + } + if (state.isFlagSetFor(Constants.WORKING_STORAGE_SECTION)) { + if (line.containsToken(Constants.EXEC_SQL_TOKEN)) { return Constants.END_EXEC_TOKEN; } } @@ -272,15 +288,15 @@ public static String getStubEndToken(CobolLine line, State state){ * @param state * @return true if the source line should be commented out */ - public static boolean shouldLineBeReadAsStatement(CobolLine line, State state){ - if (state.isFlagSetFor(Constants.FILE_SECTION) || state.isFlagSetFor(Constants.FILE_CONTROL)){ + public static boolean shouldLineBeReadAsStatement(CobolLine line, State state) { + if (state.isFlagSetFor(Constants.FILE_SECTION) || state.isFlagSetFor(Constants.FILE_CONTROL)) { if (line.containsToken(Constants.REPLACE_TOKEN)) return true; } return false; } - public static boolean containsOnlyPeriod(CobolLine line){ + public static boolean containsOnlyPeriod(CobolLine line) { return line == null ? false : line.getTrimmedString().equals(Constants.PERIOD); } @@ -301,32 +317,32 @@ private static boolean isBatchFileIOStatement(List tokens, String ioVerb return tokens.contains(ioVerb); } - - public static String getSectionOrParagraphName(CobolLine line){ - if (line.tokensSize() > 0){ + public static String getSectionOrParagraphName(CobolLine line) { + if (line.tokensSize() > 0) { return line.getToken(0); - } - else { + } else { return null; } } - public static boolean isSectionHeader(CobolLine line, State state){ + public static boolean isSectionHeader(CobolLine line, State state) { return state.isFlagSetFor(Constants.PROCEDURE_DIVISION) && line.containsToken(Constants.SECTION_TOKEN) && getBeginningArea(line, true) == Area.A; } /** - * As paragraph headers are not associated with any keyword, the method matches the + * As paragraph headers are not associated with any keyword, the method matches + * the * source line against specific attributes that makes up a paragraph header. * - * @param line - The line to check + * @param line - The line to check * @param nextLine - The line after the line param - * @param state - current state of flags - * @return true if the source line have all the attributes of a paragraph header. + * @param state - current state of flags + * @return true if the source line have all the attributes of a paragraph + * header. */ - public static boolean isParagraphHeader(CobolLine line, CobolLine nextLine, State state){ + public static boolean isParagraphHeader(CobolLine line, CobolLine nextLine, State state) { return (state.isFlagSetFor(Constants.PROCEDURE_DIVISION) && isParagraphHeaderFormat(line, nextLine) && !line.containsToken(Constants.PROCEDURE_DIVISION) @@ -339,16 +355,16 @@ && isParagraphHeaderFormat(line, nextLine) * - It has only one token * - The token is followed by a period on this or the next line. * - * @param line - The line to check + * @param line - The line to check * @param nextLine - The line after the line param * @return true if sourceLine is of the format of a paragraph header */ - private static boolean isParagraphHeaderFormat(CobolLine line, CobolLine nextLine){ - if (getBeginningArea(line, true) == Area.A){ - if (line.tokensSize() == 1) { + private static boolean isParagraphHeaderFormat(CobolLine line, CobolLine nextLine) { + if (getBeginningArea(line, true) == Area.A) { + if (line.tokensSize() == 1) { if (line.getTrimmedString().endsWith(Constants.PERIOD) || (nextLine != null && - nextLine.getTrimmedString().equals(Constants.PERIOD))) + nextLine.getTrimmedString().equals(Constants.PERIOD))) return true; } } @@ -360,19 +376,19 @@ public static List getUsingArgs(CobolLine line) { List argumentReferences = Arrays.asList(Constants.BY_REFERENCE_TOKEN, Constants.BY_CONTENT_TOKEN, Constants.BY_VALUE_TOKEN); String currentArgumentReference = Constants.BY_REFERENCE_TOKEN; - if (line.containsToken(Constants.USING_TOKEN)){ + if (line.containsToken(Constants.USING_TOKEN)) { int usingIndex = line.getTokenIndexOf(Constants.USING_TOKEN); - for(int i = usingIndex + 1; i < line.tokensSize(); i++){ + for (int i = usingIndex + 1; i < line.tokensSize(); i++) { if (line.getToken(i).toUpperCase(Locale.ROOT).equals(Constants.END_CALL_TOKEN)) break; - if (argumentReferences.contains(line.getToken(i).toUpperCase(Locale.ROOT))){ + if (argumentReferences.contains(line.getToken(i).toUpperCase(Locale.ROOT))) { currentArgumentReference = line.getToken(i).toUpperCase(); continue; } currentArgumentReference = currentArgumentReference.replace("BY ", ""); - arguments.add(currentArgumentReference + " " + line.getToken(i).replace(",","")); + arguments.add(currentArgumentReference + " " + line.getToken(i).replace(",", "")); currentArgumentReference = Constants.BY_REFERENCE_TOKEN; } } @@ -386,34 +402,37 @@ public static List getUsingArgs(CobolLine line) { * @param line - the line to get the area for * @return the beginning area of the source line. */ - public static Area getBeginningArea(CobolLine line, boolean ignoreSequenceArea){ + public static Area getBeginningArea(CobolLine line, boolean ignoreSequenceArea) { if (isTooShortToBeMeaningful(line) || - (ignoreSequenceArea && line.getUnNumberedString().length() <= sequenceNumberAreaEnd + 1)){ + (ignoreSequenceArea && line.getUnNumberedString().length() <= sequenceNumberAreaEnd + 1)) { return Area.NONE; } char[] characters; int index = 0; - if (ignoreSequenceArea){ + if (ignoreSequenceArea) { characters = line.getUnNumberedString().toCharArray(); index = sequenceNumberAreaEnd; - } - else{ + } else { characters = line.getOriginalString().toCharArray(); } - while (characters[index] == ' '){ + while (characters[index] == ' ') { index++; } - if (index < sequenceNumberAreaEnd) return Area.SEQUENCE_NUMBER; - if (index == indicatorAreaEnd - 1) return Area.INDICATOR; - if (index < A_AreaEnd) return Area.A; - if (index < B_AreaEnd) return Area.B; + if (index < sequenceNumberAreaEnd) + return Area.SEQUENCE_NUMBER; + if (index == indicatorAreaEnd - 1) + return Area.INDICATOR; + if (index < A_AreaEnd) + return Area.A; + if (index < B_AreaEnd) + return Area.B; return Area.NONE; } - public static boolean isInNumericFormat(String token){ + public static boolean isInNumericFormat(String token) { List numberCharacters = Arrays.asList('9', 'Z', 'V', 'S', '*', '$'); char firstLetter = token.toCharArray()[0]; return numberCharacters.contains(Character.toUpperCase(firstLetter)); @@ -432,7 +451,8 @@ public static boolean endsInPeriod(CobolLine line) { } /** - * Checks if the last of these lines is ending the current component (SECTION, CALL, etc.) + * Checks if the last of these lines is ending the current component (SECTION, + * CALL, etc.) * This should be called from inside the component, as it only checks, if * the trimmed line ends with a period * @@ -442,42 +462,4 @@ public static boolean endsInPeriod(CobolLine line) { public static boolean endsInPeriod(List lines) { return lines.size() > 0 && lines.get(lines.size() - 1).getTrimmedString().endsWith(Constants.PERIOD); } - - /** - * Depending on the line that is being interpreted, we want to make sure that we update - * the current datastructure. This structure is based on the lines we have read so far in - * working storage. - * This will make sure to add or remove any referenced field within the structure, based on - * the level of said field within the structure. - */ - public static TreeMap updateCurrentDataStructure(CobolLine line, TreeMap currentHierarchy) { - if (currentHierarchy==null) { - currentHierarchy = new TreeMap<>(); - } - - int lastKeyOfCurrentHierarchy; - if (currentHierarchy.isEmpty()) { - lastKeyOfCurrentHierarchy=0; - } - else { - lastKeyOfCurrentHierarchy = currentHierarchy.lastKey(); - } - int tokenWeWantToAdd; - try { - tokenWeWantToAdd=Integer.parseInt(line.getToken(0)); - } - catch (NumberFormatException e) { - return currentHierarchy; - } - String variableName = line.getToken(1); - while (lastKeyOfCurrentHierarchy > tokenWeWantToAdd && tokenWeWantToAdd > 0) { - currentHierarchy.remove(lastKeyOfCurrentHierarchy); - lastKeyOfCurrentHierarchy = currentHierarchy.lastKey(); - } - if (currentHierarchy.containsKey(tokenWeWantToAdd)) - currentHierarchy.replace(tokenWeWantToAdd, variableName); - else - currentHierarchy.put(tokenWeWantToAdd, variableName); - return currentHierarchy; - } } diff --git a/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/NumericFields.java b/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/NumericFields.java index 66aa6f9f..f71e1720 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/NumericFields.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/NumericFields.java @@ -5,7 +5,6 @@ import java.util.HashMap; import java.util.Map; -import java.util.Set; /** * Stores field type information for Data Division items in the program under test so the TestSuiteParser can @@ -23,10 +22,6 @@ public class NumericFields { public DataType dataTypeOf(String fieldName) { argumentCheck(fieldName, "ERR027"); if (fieldTypes == null) reset(); - - // We assume the fieldName has defined a datastructure. - fieldName=getKeyBasedOnAssumedDataStructure(fieldName); - return fieldTypes.getOrDefault(fieldName, DataType.ALPHANUMERIC); } @@ -51,36 +46,4 @@ private void argumentCheck(Object argumentValue, String messageId) { } - /** - * Based on the given value of the parsed fieldName, we want to make sure we - * find the correct key based on the datastructre that were referenced. - * If we cannot find the key, we return null - */ - private String getKeyBasedOnAssumedDataStructure(String line) { - // We will attempt to split the line on any " IN " and " OF " statements, to isolate the names - // in the referenced data structure. - String[] nameTokens = line.toUpperCase().split("(?:^|\\W)OF(?:$|\\W)|(?:^|\\W)IN(?:$|\\W)"); - Boolean found=false; - for (String key : fieldTypes.keySet()) { - if (key.toUpperCase().contains(nameTokens[0])) { - int previousNameIndex = 0; - int currentSearchIteration = 1; - found = true; - while (found && currentSearchIteration < nameTokens.length) { - int currentNameIndex = key.toUpperCase().indexOf(nameTokens[currentSearchIteration]); - if (currentNameIndex > previousNameIndex) { - currentSearchIteration++; - previousNameIndex = currentNameIndex; - } - else - found = false; - } - if (found) { - return key; - } - } - } - return null; - } - } diff --git a/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java b/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java index c3b55297..f4036548 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java @@ -126,6 +126,8 @@ private void processingBeforeEchoingSourceLineToOutput() throws IOException { workingStorageHasEnded = true; } if (interpreter.didLineJustEnter(Constants.PROCEDURE_DIVISION) && interpreter.currentLineContains(Constants.PROCEDURE_DIVISION)){ + if (!interpreter.getFileSectionStatements().isEmpty()) + writerController.writeLines(interpreter.getFileSectionStatements()); writerController.stopStoringLines(); testSuiteParserController.parseTestSuites(interpreter.getNumericFields()); writerController.writeLines(testSuiteParserController.getWorkingStorageMockCode()); @@ -164,10 +166,12 @@ private void writeToSource(String sourceLine) throws IOException { writerController.writeLines(interpreter.getCurrentStatement()); } } - else { - if (interpreter.shouldCurrentLineBeStubbed()){ - writerController.writeStubbedLine(sourceLine); + if (interpreter.shouldCurrentLineBeStubbed()) { + if(interpreter.isReading(Constants.WORKING_STORAGE_SECTION)) + writerController.writeStubbedLine(interpreter.getCurrentLineAsStatement().getUnNumberedString()); + else + writerController.writeStubbedLine(sourceLine); } else { writerController.writeLine(sourceLine); diff --git a/src/test/cobol/DB2PROG/DB2TEST.cut b/src/test/cobol/DB2PROG/DB2TEST.cut new file mode 100644 index 00000000..5a07b9fd --- /dev/null +++ b/src/test/cobol/DB2PROG/DB2TEST.cut @@ -0,0 +1,7 @@ + TestSuite "Tests of DB2 includes" + + TestCase "DB2 Copybook added to PRG" + move "John" to FIRST-NAME + move "Doe" to LAST-NAME + Expect FIRST-NAME to be "John" + Expect LAST-NAME to be "Doe" \ No newline at end of file diff --git a/src/test/java/org/openmainframeproject/cobolcheck/InterpreterControllerTest.java b/src/test/java/org/openmainframeproject/cobolcheck/InterpreterControllerTest.java index 52ab225b..92d12e5d 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/InterpreterControllerTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/InterpreterControllerTest.java @@ -842,5 +842,145 @@ public void it_registers_EXEC_CICS_as_stub() throws IOException { assertTrue(testsRan); } + @Test + public void it_adds_file_section_statements_from_source_and_db2copybook_multipleLines() throws IOException { + String str1 = " DATA DIVISION."; + String str2 = " WORKING-STORAGE SECTION."; + String str3 = " EXEC SQL"; + String str4 = " INCLUDE TEXEM"; + String str5 = " END-EXEC."; + String str6 = " PROCEDURE DIVISION."; + + Mockito.when(mockedReader.readLine()).thenReturn(str1, str2, str3, str4, str5, str6, null); + + while (interpreterController.interpretNextLine() != null){ + interpreterController.interpretNextLine(); + } + + assertEquals(4,interpreterController.getFileSectionStatements().size()); + assertTrue(interpreterController.getFileSectionStatements().contains(" 01 TEXEM.")); + assertTrue(interpreterController.getFileSectionStatements().contains(" 10 FIRST-NAME PIC X(10).")); + assertTrue(interpreterController.getFileSectionStatements().contains(" 10 LAST-NAME PIC X(10).")); + assertTrue(interpreterController.getFileSectionStatements().contains(" 10 TMS-CREA PIC X(26).")); + } + + @Test + public void it_adds_file_section_statements_from_source_and_db2copybook() throws IOException { + String str1 = " DATA DIVISION."; + String str2 = " WORKING-STORAGE SECTION."; + String str3 = " EXEC SQL INCLUDE TEXEM END-EXEC."; + String str4 = " PROCEDURE DIVISION."; + + Mockito.when(mockedReader.readLine()).thenReturn(str1, str2, str3, str4, null); + + while (interpreterController.interpretNextLine() != null){ + interpreterController.interpretNextLine(); + } + + assertEquals(4,interpreterController.getFileSectionStatements().size()); + assertTrue(interpreterController.getFileSectionStatements().contains(" 01 TEXEM.")); + assertTrue(interpreterController.getFileSectionStatements().contains(" 10 FIRST-NAME PIC X(10).")); + assertTrue(interpreterController.getFileSectionStatements().contains(" 10 LAST-NAME PIC X(10).")); + assertTrue(interpreterController.getFileSectionStatements().contains(" 10 TMS-CREA PIC X(26).")); + } + @Test + public void it_updates_numeric_fields_from_DB2Copybook() throws IOException { + String str1 = " DATA DIVISION."; + String str2 = " WORKING-STORAGE SECTION."; + String str3 = " EXEC SQL INCLUDE TEXE2 END-EXEC."; + String str4 = " PROCEDURE DIVISION."; + + Mockito.when(mockedReader.readLine()).thenReturn(str1, str2, str3, str4, null); + + while (interpreterController.interpretNextLine() != null){ + interpreterController.interpretNextLine(); + } + + assertEquals("PACKED_DECIMAL", + interpreterController.getNumericFieldDataTypeFor("WALLET").name()); + } + + @Test + public void it_updates_numeric_fields_from_copybook() throws IOException { + String str1 = " FILE SECTION."; + String str2 = " FD INPUT-FILE"; + String str3 = " 01 OUTPUT-RECORD."; + String str4 = " COPY COPY001-padded."; + String str5 = " WORKING-STORAGE SECTION."; + + Mockito.when(mockedReader.readLine()).thenReturn(str1, str2, str3, str4, str5, null); + + while (interpreterController.interpretNextLine() != null) { + interpreterController.interpretNextLine(); + } + + assertEquals("PACKED_DECIMAL", + interpreterController.getNumericFieldDataTypeFor("TEST-DATA-ELEMENT-001-B2").name()); + } + + @Test + public void it_registers_DB2Copybook_as_stub() throws IOException { + String str1 =" DATA DIVISION."; + String str2 = " WORKING-STORAGE SECTION."; + String str3 = " EXEC SQL INCLUDE TEXE2 END-EXEC."; + String str4 = " PROCEDURE DIVISION."; + + Mockito.when(mockedReader.readLine()).thenReturn(str1, str2, str3, str4, null); + + boolean testsRan = false; + String currentLine = ""; + while (currentLine != null){ + currentLine = interpreterController.interpretNextLine(); + if (currentLine != null && currentLine.contains("EXEC SQL")){ + assertTrue(interpreterController.shouldCurrentLineBeStubbed()); + testsRan = true; + } + } + assertTrue(testsRan); + } + + @Test + public void it_registers_DB2Copybook_on_multiple_lines_as_stub() throws IOException { + String str1 = " DATA DIVISION."; + String str2 = " WORKING-STORAGE SECTION."; + String str3 = " EXEC SQL"; + String str4 = " INCLUDE TEXEM"; + String str5 = " END-EXEC."; + String str6 = " PROCEDURE DIVISION."; + + Mockito.when(mockedReader.readLine()).thenReturn(str1, str2, str3, str4, str5, str6, null); + + boolean testsRan = false; + String currentLine = ""; + while (currentLine != null){ + currentLine = interpreterController.interpretNextLine(); + if (currentLine != null && currentLine.contains("EXEC SQL")) { + assertTrue(interpreterController.shouldCurrentLineBeStubbed()); + testsRan = true; + } + } + assertTrue(testsRan); + } + + @Test + public void it_stubs_linkage_line() throws IOException { + String str1 = " DATA DIVISION."; + String str2 = " WORKING-STORAGE SECTION."; + String str3 = " LINKAGE SECTION."; + String str4 = " PROCEDURE DIVISION."; + + Mockito.when(mockedReader.readLine()).thenReturn(str1, str2, str3, str4, null); + + boolean testsRan = false; + String currentLine = ""; + while (currentLine != null){ + currentLine = interpreterController.interpretNextLine(); + if (currentLine != null && currentLine.contains("LINKAGE SECTION.")) { + assertTrue(interpreterController.shouldCurrentLineBeStubbed()); + testsRan = true; + } + } + assertTrue(testsRan); + } } diff --git a/src/test/java/org/openmainframeproject/cobolcheck/KeywordsTest.java b/src/test/java/org/openmainframeproject/cobolcheck/KeywordsTest.java index 86307dae..9b184dcf 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/KeywordsTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/KeywordsTest.java @@ -66,7 +66,6 @@ private static Stream KeywordProvider() { KeywordAction.TESTSUITE_NAME), Arguments.of(Constants.EQUAL_SIGN_KEYWORD, Constants.EQUAL_SIGN_KEYWORD, Arrays.asList(Constants.FIELDNAME_KEYWORD, - Constants.NUMERIC_KEYWORD, Constants.COBOL_TOKEN, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, @@ -77,7 +76,6 @@ private static Stream KeywordProvider() { KeywordAction.REVERSE_LOGIC), Arguments.of(Constants.GREATER_THAN_SIGN_KEYWORD, Constants.GREATER_THAN_SIGN_KEYWORD, Arrays.asList(Constants.FIELDNAME_KEYWORD, - Constants.NUMERIC_KEYWORD, Constants.COBOL_TOKEN, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, @@ -85,7 +83,6 @@ private static Stream KeywordProvider() { KeywordAction.EXPECTED_VALUE), Arguments.of(Constants.LESS_THAN_SIGN_KEYWORD, Constants.LESS_THAN_SIGN_KEYWORD, Arrays.asList(Constants.FIELDNAME_KEYWORD, - Constants.NUMERIC_KEYWORD, Constants.COBOL_TOKEN, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, @@ -93,7 +90,6 @@ private static Stream KeywordProvider() { KeywordAction.EXPECTED_VALUE), Arguments.of(Constants.GREATER_THAN_EQUAL_TO_SIGN_KEYWORD, Constants.GREATER_THAN_EQUAL_TO_SIGN_KEYWORD, Arrays.asList(Constants.FIELDNAME_KEYWORD, - Constants.NUMERIC_KEYWORD, Constants.COBOL_TOKEN, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, @@ -101,7 +97,6 @@ private static Stream KeywordProvider() { KeywordAction.EXPECTED_VALUE), Arguments.of(Constants.LESS_THAN_EQUAL_TO_SIGN_KEYWORD, Constants.LESS_THAN_EQUAL_TO_SIGN_KEYWORD, Arrays.asList(Constants.FIELDNAME_KEYWORD, - Constants.NUMERIC_KEYWORD, Constants.COBOL_TOKEN, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, diff --git a/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java b/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java index 98c2159c..2a4526c1 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java @@ -7,6 +7,7 @@ import org.openmainframeproject.cobolcheck.services.Config; import org.openmainframeproject.cobolcheck.services.Constants; import org.openmainframeproject.cobolcheck.services.StringHelper; +import org.openmainframeproject.cobolcheck.services.cobolLogic.Interpreter; import org.openmainframeproject.cobolcheck.workers.Generator; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; @@ -30,6 +31,7 @@ public class MockIT { private BufferedReader mockedParserReader; private InterpreterController interpreterController; private BufferedReader mockedInterpreterReader; + private Interpreter interpreter; private CobolWriter cobolWriter; private WriterController writerController; private Writer writer; diff --git a/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java b/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java index 817d51ae..525abd66 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java @@ -192,20 +192,18 @@ public void call_mock_gets_call_type() throws IOException { @Test public void mock_gets_correct_lines() throws IOException { - String str1 = " TESTSUITE \"Name of test suite\""; - String str2 = " TESTCASE \"Name of test case\""; - String str3 = " MOCK SECTION 000-START"; - String str4 = " * MOVE \"something\" TO this"; - String str5 = " MOVE \"something\" TO this"; - String str6 = " MOVE \"something else\" TO other"; - String str7 = " END-MOCK"; + String str1 = " TESTSUITE \"Name of test suite\""; + String str2 = " TESTCASE \"Name of test case\""; + String str3 = " MOCK SECTION 000-START"; + String str4 = " MOVE \"something\" TO this"; + String str5 = " MOVE \"something else\" TO other"; + String str6 = " END-MOCK"; List expected = new ArrayList<>(); - expected.add(" * MOVE \"something\" TO this"); expected.add(" MOVE \"something\" TO this"); expected.add(" MOVE \"something else\" TO other"); - Mockito.when(mockedReader.readLine()).thenReturn(str1, str2, str3, str4, str5, str6, str7, null); + Mockito.when(mockedReader.readLine()).thenReturn(str1, str2, str3, str4, str5, str6, null); testSuiteParser.getParsedTestSuiteLines(mockedReader, numericFields); assertEquals(expected, mockRepository.getMocks().get(0).getLines()); diff --git a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java index abc96f35..88c860a2 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java @@ -11,7 +11,6 @@ import org.openmainframeproject.cobolcheck.features.writer.CobolWriter; import org.openmainframeproject.cobolcheck.services.Config; import org.openmainframeproject.cobolcheck.services.Constants; -import org.openmainframeproject.cobolcheck.services.cobolLogic.DataType; import org.openmainframeproject.cobolcheck.services.cobolLogic.NumericFields; import java.io.BufferedReader; @@ -392,37 +391,4 @@ public void it_catches_unexpected_keyword_after_verify() { assertEquals(expectedResult, actualResult); } - @Test - public void it_catches_type_mismatch_of_numeric_and_alphanumeric_for_explicit_numeric_in_unit_test() { - testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); - testSuite.append(" TESTCASE \"Name of test case\""+ Constants.NEWLINE); - testSuite.append(" EXPECT WS-ALPHA-VALUE TO BE NUMERIC \"Hello\""+ Constants.NEWLINE); - - String expectedResult = ""; - expectedResult += "WARNING in file: null:3:44:" + Constants.NEWLINE; - expectedResult += "Unexpected token on line 3, index 44:" + Constants.NEWLINE; - expectedResult += "Expected compare to be of type , but the variable was classified as the type " + Constants.NEWLINE; - expectedResult += "The test was carried out with the compare type " + Constants.NEWLINE + Constants.NEWLINE; - - testSuiteParser.getParsedTestSuiteLines(new BufferedReader(new StringReader(testSuite.toString())), numericFields); - - String actualResult = testSuiteErrorLog.getErrorMessages(); - assertEquals(expectedResult, actualResult); - } - - @Test - public void explicit_numeric_gives_no_warning_when_variable_is_numeric() { - testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); - testSuite.append(" TESTCASE \"Name of test case\""+ Constants.NEWLINE); - testSuite.append(" EXPECT WS-NUMERIC-VALUE TO BE NUMERIC 1"+ Constants.NEWLINE); - - String expectedResult = ""; - - numericFields.setDataTypeOf("WS-NUMERIC-VALUE", DataType.PACKED_DECIMAL); - - testSuiteParser.getParsedTestSuiteLines(new BufferedReader(new StringReader(testSuite.toString())), numericFields); - - String actualResult = testSuiteErrorLog.getErrorMessages(); - assertEquals(expectedResult, actualResult); - } } diff --git a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteParserParsingTest.java b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteParserParsingTest.java index 0fe24d18..1f14a72e 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteParserParsingTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteParserParsingTest.java @@ -194,7 +194,7 @@ public void it_accepts_parenthesis_in_item_in_EXPECT() { public void it_finds_correct_data_type_for_table() { String expectedLine = " SET UT-NUMERIC-COMPARE TO TRUE"; testSuite.append(" EXPECT TABLE-FIELD IN WS-FIELDS (2 3) TO BE \"some value\""); - numericFields.setDataTypeOf("TABLE-FIELD,WS-FIELDS", DataType.DISPLAY_NUMERIC); + numericFields.setDataTypeOf("TABLE-FIELD", DataType.DISPLAY_NUMERIC); List actual = testSuiteParser.getParsedTestSuiteLines( new BufferedReader(new StringReader(testSuite.toString())), numericFields); diff --git a/testsuites/concatenatedTestsuites b/testsuites/concatenatedTestsuites index d340edc7..c2f94363 100644 --- a/testsuites/concatenatedTestsuites +++ b/testsuites/concatenatedTestsuites @@ -1,4 +1,4 @@ - *From file: C:\Udvikler\Workspace\cobol-check-main\src\test\cobol\GREETING\GreetingByType.cut + *From file: C:\workspace\cobol-check\src\test\cobol\GREETING\GreetingByType.cut TESTSUITE "Greeting returns the appropriate message based on message type" diff --git a/vs code extension/CHANGELOG.md b/vs code extension/CHANGELOG.md index 4c110f41..25d024b7 100644 --- a/vs code extension/CHANGELOG.md +++ b/vs code extension/CHANGELOG.md @@ -1,15 +1,6 @@ # Change Log All notable changes to the "cobol-unit-test" extension will be documented in this file. Versioning according to SemVer: https://semver.org/ -## [0.3.9] 02.01.2023 -- Bugfix: Fixed an issue where the configure-command would remove a line from the configuration file, everytime you would overwrite an existing value. - -## [0.3.8] 21.12.2022 -- Fix for last release - -## [0.3.7] 21.12.2022 -- Now using Cobol Check version 0.2.5 -- Prepared for GnuCOBOL compiler options in config and scripts ## [0.3.6] 02.11.2022 - Now using Cobol Check version 0.2.4 diff --git a/vs code extension/Cobol-check/bin/cobol-check-0.2.4.jar b/vs code extension/Cobol-check/bin/cobol-check-0.2.4.jar new file mode 100644 index 0000000000000000000000000000000000000000..4ecdcf0bdf2a4e47988909cf91e17c21d8f15273 GIT binary patch literal 239745 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%0DF<;(Rs_JZ>F5Bc_=SaZ3(xC*?g@40{ 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

cjfSu>ZSe6rI3~RaoQ4M zQoz-O)=n9vYX0iq<67YeEE1W>>lg*4)cFcz%cSq`_aM2{Si>;zJP2T!1e@rjcjKFfM$Rv46I8+oUg`< zO{)!3jShwC<;J3;dHykV+7>7*6=+&a`wfavLrKG@($`2s?}n|Z|M*ZM1aVwW;D6{O znAf`DGvT^BTf9GP{P%~G4?I|PtP4Xg3;RQ?!8?(eeZZe1Z2DqGY`qg@Vh%Y0*H(df zLkM~E@Y#bl!(d}0#ijBa!PIv^ZS=a2dHaWtT?VT)DFk;@0-or>!nec~UR-zpJ_U2P zOcCX_$l-(O8$y0DlTm*yt&ztj z$rILXti=;yE%wlMT(j|ehb=TYZi38nUHeCZF(y!8BMa=vS_X%GSmCJ17JqDuM*p?P zd@Bg>5UgsBvZ(FN5$I_`awmI07-epaja_L`Hfud#1wn6g)2DTN1XyH=%r8||a*QaN z1@T)hj4{!PGKsPgvTg7bUjiKOz-nsq(~kodJ%DwA5gyvw=N^v$ZG)q(HKThNwzUU4 zvub}KBhD;b#U_?WMjuy%j2La2%ngyn-zT799avk1^qsE5c|D8^vDL^~rE3Vaf@=>r z&f5yP*^tG`Mh}_3V3)!XY=X z3GyT2sId0McSs=D)7_Ct1!a(dlQ9DU-^szZhR^7OVQW>nR=xWg5OaWtj_2bWhpkl~ z(UMH|q4{BRf2<#`unj7=7etR}Uo2>1lWR*OnUg$Otk)54mvFL%#>)*BQ=)w_x|L0i z9TnN%`Lp_KA5kuYOy#sgCDTI{pHa`SVD>aWR-3ry7)~^P1q=t^4U8-hSK0o9P1a8+ z7kQ7LfLRHy)8HcLV#?v-VJ}{QpdP!yW!^=v*l#(ca;0Ca-WBbV2q~==Ul` z{}b9+NHF|PT4q3-UZSmuor9%4HcjUJdENI=OiohF73iMy@MtUSu(V>n!JeU5a65#(nn8mSeu*eSl#*i*3fB``(#3%-5g~aH3|j%jvxootc2Vk>SxwjMvi-?a-6| zJp$uOSyUH}b(=Zk?a9Gm?7o`87*Wv*1{(|8G zQ8zC#1DUS|8vsV=3>S#HD2y4%e5uU<&_sXOz`#vxkoiRL h0brBGaDk}v!EG#fAu-6sbs7FChwdZB76Kx!{{b(_!!rN? literal 0 HcmV?d00001 diff --git a/vs code extension/Cobol-check/config.properties b/vs code extension/Cobol-check/config.properties index 5347f7b0..d2aeafa7 100644 --- a/vs code extension/Cobol-check/config.properties +++ b/vs code extension/Cobol-check/config.properties @@ -163,18 +163,6 @@ application.copybook.filename.suffix = CBL,cbl,COB,cob #--------------------------------------------------------------------------------------------------------------------- concatenated.test.suites = Cobol-check/ALLTESTS -#--------------------------------------------------------------------------------------------------------------------- -# The GnuCOBOL compiler has a lot of different compile options. -# Some of these options are gathered in a dialect file (default: default.conf) -# and are located in the "GnuCOBOL-installationfolder/config"-folder. -# If you need any specific dialect file or other GnuCOBOL-specific compile options, you can add them here. -# If not specified, the default will be the normal GnuCOBOL compile setup. -# Separate options with a comma. Set the value to 'null' for default compile options -# Example: -# gnucobol.compile.options = -std=ibm,-fsingle-quote -#--------------------------------------------------------------------------------------------------------------------- -gnucobol.compile.options = null - #--------------------------------------------------------------------------------------------------------------------- # Shell scripts and JCL files for executing your test suites. # Cobol Check will invoke one of these after creating the copy of the program under test that contains @@ -193,5 +181,3 @@ freebsd.process = linux_gnucobol_run_tests windows.process = windows_gnucobol_run_tests.cmd zos.process = unix.process = linux_gnucobol_run_tests -cobol_run_tests -cobol_run_tests diff --git a/vs code extension/Cobol-check/default.properties b/vs code extension/Cobol-check/default.properties index 86881a1e..d2aeafa7 100644 --- a/vs code extension/Cobol-check/default.properties +++ b/vs code extension/Cobol-check/default.properties @@ -163,18 +163,6 @@ application.copybook.filename.suffix = CBL,cbl,COB,cob #--------------------------------------------------------------------------------------------------------------------- concatenated.test.suites = Cobol-check/ALLTESTS -#--------------------------------------------------------------------------------------------------------------------- -# The GnuCOBOL compiler has a lot of different compile options. -# Some of these options are gathered in a dialect file (default: default.conf) -# and are located in the "GnuCOBOL-installationfolder/config"-folder. -# If you need any specific dialect file or other GnuCOBOL-specific compile options, you can add them here. -# If not specified, the default will be the normal GnuCOBOL compile setup. -# Separate options with a comma. Set the value to 'null' for default compile options -# Example: -# gnucobol.compile.options = -std=ibm,-fsingle-quote -#--------------------------------------------------------------------------------------------------------------------- -gnucobol.compile.options = null - #--------------------------------------------------------------------------------------------------------------------- # Shell scripts and JCL files for executing your test suites. # Cobol Check will invoke one of these after creating the copy of the program under test that contains diff --git a/vs code extension/Cobol-check/scripts/windows_gnucobol_run_tests.cmd b/vs code extension/Cobol-check/scripts/windows_gnucobol_run_tests.cmd index 3bfb01c4..75e36983 100644 --- a/vs code extension/Cobol-check/scripts/windows_gnucobol_run_tests.cmd +++ b/vs code extension/Cobol-check/scripts/windows_gnucobol_run_tests.cmd @@ -5,4 +5,4 @@ rem Assumptions: rem rem GnuCOBOL 3.+ is installed and on the path. Its executable or alias or symlink is named "cobc". -cobc -x %* && %~n1 \ No newline at end of file +cobc -x %1 && %~n1 \ No newline at end of file diff --git a/vs code extension/client/src/extension.ts b/vs code extension/client/src/extension.ts index e667e6a8..f848973f 100644 --- a/vs code extension/client/src/extension.ts +++ b/vs code extension/client/src/extension.ts @@ -19,7 +19,7 @@ import path = require('path'); let externalVsCodeInstallationDir = vscode.extensions.getExtension("openmainframeproject.cobol-check-extension").extensionPath; let configPath = appendPath(externalVsCodeInstallationDir, 'Cobol-check/config.properties'); let defaultConfigPath = appendPath(externalVsCodeInstallationDir, 'Cobol-check/default.properties'); -let cobolCheckJarPath = appendPath(externalVsCodeInstallationDir, 'Cobol-check/bin/cobol-check-0.2.5.jar'); +let cobolCheckJarPath = appendPath(externalVsCodeInstallationDir, 'Cobol-check/bin/cobol-check-0.2.2.jar'); let lastCurrentFile = null; let cutLanguageRunning = false; @@ -57,19 +57,17 @@ export function activate(context: ExtensionContext) { }); }); - let setConfiguration_Cmd = vscode.commands.registerCommand('cobolcheck.configure', (key : string, value : string) => { - if (key && value){ - setConfiguration(configPath, key, value); - } - else{ - getConfigurationMap(configPath, async (configMap) => { - if (configMap === null) return; - key = await vscode.window.showQuickPick(Array.from(configMap.keys()), {placeHolder: 'Pick a configuration'}); - const value = await vscode.window.showInputBox({placeHolder: 'New configuration value'}) - if (!key || !value) return; - setConfiguration(configPath, key, value); - }); - } + let setConfiguration_Cmd = vscode.commands.registerCommand('cobolcheck.configure', () => { + getConfigurationMap(configPath, async (configMap) => { + if (configMap === null) return; + const configKey = await vscode.window.showQuickPick(Array.from(configMap.keys()), {placeHolder: 'Pick a configuration'}); + if (configKey === undefined) return; + + const newValue = await vscode.window.showInputBox({placeHolder: 'New configuration value'}) + if (newValue === undefined) return; + + setConfiguration(configPath, configKey, newValue); + }); }); let resetConfigurations_Cmd = vscode.commands.registerCommand('cobolcheck.reset.configuration', () => { diff --git a/vs code extension/client/src/services/CobolCheckConfiguration.ts b/vs code extension/client/src/services/CobolCheckConfiguration.ts index b8df8049..03acee16 100644 --- a/vs code extension/client/src/services/CobolCheckConfiguration.ts +++ b/vs code extension/client/src/services/CobolCheckConfiguration.ts @@ -52,7 +52,7 @@ export function setConfiguration(configurationPath : string, key : string, newVa let keyValue = trimmedLine.split('='); if (keyValue.length > 1 && keyValue[0].trim() === key){ - newConfigurationText += key + ' = ' + newValue + '\n'; + newConfigurationText += key + ' = ' + newValue; keyHasBeenFound = true; LOGGER.log("Updated configuration key: " + key + " with value: " + newValue, LOGGER.INFO); } else{ @@ -62,7 +62,6 @@ export function setConfiguration(configurationPath : string, key : string, newVa if (!keyHasBeenFound){ vscode.window.showErrorMessage('Could not find key: ' + key + ' in config file: ' + configurationPath) - return; } fs.writeFile(configurationPath, newConfigurationText, 'utf8', function (err) { if(err) { diff --git a/vs code extension/package.json b/vs code extension/package.json index 6a61465a..8c69a62e 100644 --- a/vs code extension/package.json +++ b/vs code extension/package.json @@ -8,7 +8,7 @@ "Snippets" ], "description": "Extension for running unit tests in Cobol", - "version": "0.3.9", + "version": "0.3.6", "icon": "images/cobol-check-logo-small.png", "engines": { "vscode": "^1.46.0" From 455b03da6d0522b301419eb1f4978f822c44d7c0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20M=C3=B8nster?= Date: Tue, 14 Feb 2023 08:45:42 +0100 Subject: [PATCH 008/180] Removed redundant check MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Benjamin Mønster --- .../cobolcheck/workers/Generator.java | 10 +--------- 1 file changed, 1 insertion(+), 9 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java b/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java index f4036548..8c2c057f 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java @@ -167,15 +167,7 @@ private void writeToSource(String sourceLine) throws IOException { } } else { - if (interpreter.shouldCurrentLineBeStubbed()) { - if(interpreter.isReading(Constants.WORKING_STORAGE_SECTION)) - writerController.writeStubbedLine(interpreter.getCurrentLineAsStatement().getUnNumberedString()); - else - writerController.writeStubbedLine(sourceLine); - } - else { - writerController.writeLine(sourceLine); - } + writerController.writeLine(sourceLine); } } } From ac69ce0deaaf15638c391016996e7578571d4116 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20M=C3=B8nster?= Date: Tue, 14 Feb 2023 08:53:02 +0100 Subject: [PATCH 009/180] Added getter MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Benjamin Mønster --- .../features/interpreter/InterpreterController.java | 4 ++++ .../cobolcheck/workers/Generator.java | 10 +++++++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java index 66cbba6a..6c485f02 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java @@ -69,6 +69,10 @@ public List getCurrentStatement() { return convertToStrings(reader.getCurrentStatement()); } + public CobolLine getCurrentLineAsStatement() throws IOException { + return reader.readStatementAsOneLine(); + } + // Getting info from reader public boolean hasStatementBeenRead() { return reader.hasStatementBeenRead(); diff --git a/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java b/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java index 8c2c057f..f4036548 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java @@ -167,7 +167,15 @@ private void writeToSource(String sourceLine) throws IOException { } } else { - writerController.writeLine(sourceLine); + if (interpreter.shouldCurrentLineBeStubbed()) { + if(interpreter.isReading(Constants.WORKING_STORAGE_SECTION)) + writerController.writeStubbedLine(interpreter.getCurrentLineAsStatement().getUnNumberedString()); + else + writerController.writeStubbedLine(sourceLine); + } + else { + writerController.writeLine(sourceLine); + } } } } From 34a1e1e5b70aef9908fb1248f739cdc894cbed2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20M=C3=B8nster?= Date: Tue, 14 Feb 2023 11:19:25 +0100 Subject: [PATCH 010/180] Fix develop merge MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Benjamin Mønster --- CHANGELOG.md | 9 +++ README.md | 2 +- build.gradle | 2 +- config.properties | 12 ++++ scripts/windows_gnucobol_run_tests.cmd | 2 +- .../interpreter/InterpreterController.java | 44 +++++++++--- .../launcher/Formatter/Formats/Formatter.java | 3 +- .../features/launcher/LaunchHelper.java | 32 +++++++++ .../launcher/LinuxProcessLauncher.java | 12 ++-- .../launcher/WindowsProcessLauncher.java | 13 ++-- .../features/testSuiteParser/Keywords.java | 68 +++++++++++++----- .../testSuiteParser/TestSuiteErrorLog.java | 9 +++ .../testSuiteParser/TestSuiteParser.java | 42 +++++++---- .../cobolcheck/services/Config.java | 26 +++++++ .../cobolcheck/services/Constants.java | 3 +- .../cobolcheck/services/StringHelper.java | 5 +- .../services/cobolLogic/Interpreter.java | 49 +++++++++++-- .../services/cobolLogic/NumericFields.java | 39 +++++++++- .../cobolcheck/KeywordsTest.java | 5 ++ .../cobolcheck/MockingTest.java | 16 +++-- .../cobolcheck/TestSuiteErrorLogTest.java | 35 +++++++++ .../TestSuiteParserParsingTest.java | 2 +- vs code extension/CHANGELOG.md | 11 +++ .../Cobol-check/bin/cobol-check-0.2.4.jar | Bin 239745 -> 0 bytes .../Cobol-check/config.properties | 14 ++++ .../Cobol-check/default.properties | 12 ++++ .../scripts/windows_gnucobol_run_tests.cmd | 2 +- vs code extension/client/src/extension.ts | 26 +++---- .../src/services/CobolCheckConfiguration.ts | 3 +- vs code extension/package.json | 2 +- 30 files changed, 413 insertions(+), 87 deletions(-) create mode 100644 src/main/java/org/openmainframeproject/cobolcheck/features/launcher/LaunchHelper.java delete mode 100644 vs code extension/Cobol-check/bin/cobol-check-0.2.4.jar diff --git a/CHANGELOG.md b/CHANGELOG.md index ccfd34f7..a5319cfb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,15 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Mock SQL tables - Mock batch file I/O +## \[0.2.6\] 2023-01-12 - Unreleased +### Implemented +- Datastructure-verification for Working Storage has been added. + +## \[0.2.5\] 2022-12-21 +### Implemented +- Compiler options for COBOL Check's run of GnuCOBOL can be set in the config-file +- Minor improvements to error handling + ## \[0.2.4\] 2022-11-02 ### Implemented - EXPECT accepts COBOL keywords again as the last keyword diff --git a/README.md b/README.md index 5a2dbd9c..de8ccfb2 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ As of March 2022 we could use help with: ## Downloads -Version 0.2.4 pre-release is available! +Version 0.2.6 pre-release is available! [//]: # (- Find the download on the project home page on the [Neo Pragma site](https://neopragma.com/projects/cobol-check/).) - Find distributions here: [Cobol Check Ditributions](https://github.com/openmainframeproject/cobol-check/blob/main/build/distributions). diff --git a/build.gradle b/build.gradle index e2f7d3d7..20e17f6e 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ plugins { id 'jacoco' } -def productVersion = '0.2.4' +def productVersion = '0.2.6' def productName = 'cobol-check' group = 'org.openmainframeproject' description = 'Unit testing framework for Cobol' diff --git a/config.properties b/config.properties index 826e6062..a16a9950 100644 --- a/config.properties +++ b/config.properties @@ -163,6 +163,18 @@ application.copybook.filename.suffix = CBL,cbl,COB,cob,cpy #--------------------------------------------------------------------------------------------------------------------- concatenated.test.suites = ./ALLTESTS +#--------------------------------------------------------------------------------------------------------------------- +# The GnuCOBOL compiler has a lot of different compile options. +# Some of these options are gathered in a dialect file (default: default.conf) +# and are located in the "GnuCOBOL-installationfolder/config"-folder. +# If you need any specific dialect file or other GnuCOBOL-specific compile options, you can add them here. +# If not specified, the default will be the normal GnuCOBOL compile setup. +# Separate options with a comma. Set the value to 'null' for default compile options +# Example: +# gnucobol.compile.options = -std=ibm,-fsingle-quote +#--------------------------------------------------------------------------------------------------------------------- +gnucobol.compile.options = null + #--------------------------------------------------------------------------------------------------------------------- # Shell scripts and JCL files for executing your test suites. # Cobol Check will invoke one of these after creating the copy of the program under test that contains diff --git a/scripts/windows_gnucobol_run_tests.cmd b/scripts/windows_gnucobol_run_tests.cmd index 2a7579f3..895c82a6 100644 --- a/scripts/windows_gnucobol_run_tests.cmd +++ b/scripts/windows_gnucobol_run_tests.cmd @@ -5,4 +5,4 @@ rem Assumptions: rem rem GnuCOBOL 3.+ is installed and on the path. Its executable or alias or symlink is named "cobc". -cobc -x %1 && %~dpn1 \ No newline at end of file +cobc -x %* && %~dpn1 \ No newline at end of file diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java index 6c485f02..3fc3a196 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java @@ -6,11 +6,15 @@ import org.openmainframeproject.cobolcheck.services.Messages; import org.openmainframeproject.cobolcheck.services.Constants; import org.openmainframeproject.cobolcheck.services.cobolLogic.*; +import org.openmainframeproject.cobolcheck.services.log.Log; import java.io.BufferedReader; import java.io.IOException; import java.util.*; +import static org.openmainframeproject.cobolcheck.services.cobolLogic.Interpreter.updateCurrentDataStructure; + + public class InterpreterController { private CobolReader reader; private LineRepository lineRepository; @@ -22,16 +26,18 @@ public class InterpreterController { private List possibleMockArgs; private List extractedCopyBook; private boolean insideSectionOrParagraphMockBody; - + private TreeMap currentDataStructure; + public InterpreterController(BufferedReader sourceReader) { if (sourceReader == null) { throw new PossibleInternalLogicErrorException( - Messages.get("ERR001", "cobolSourceIn", "Generator.runSuite()")); - } - reader = new CobolReader(sourceReader); - lineRepository = new LineRepository(); - numericFields = new NumericFields(); - tokenExtractor = new StringTokenizerExtractor(); + Messages.get("ERR001", "cobolSourceIn", "Generator.runSuite()")); + } + reader = new CobolReader(sourceReader); + lineRepository = new LineRepository(); + numericFields = new NumericFields(); + tokenExtractor = new StringTokenizerExtractor(); + currentDataStructure = new TreeMap<>(); } // Getters for lists of specific source lines @@ -367,18 +373,23 @@ private void tryReadBatchFileIOStatement() { */ private void updateNumericFields(CobolLine line) { if (line.tokensSize() > 1) { + String variableNameWeWantToSave = line.getToken(1); + + if (!this.currentDataStructure.isEmpty()) { + variableNameWeWantToSave = generateVariableNameBasedOnDataStructure(this.currentDataStructure); + } if (line.containsToken(Constants.COMP_3_VALUE)) { - numericFields.setDataTypeOf(line.getToken(1).toUpperCase(Locale.ROOT), DataType.PACKED_DECIMAL); + numericFields.setDataTypeOf(variableNameWeWantToSave.toUpperCase(Locale.ROOT), DataType.PACKED_DECIMAL); } else { if (line.containsToken(Constants.COMP_VALUE)) { - numericFields.setDataTypeOf(line.getToken(1).toUpperCase(Locale.ROOT), DataType.FLOATING_POINT); + numericFields.setDataTypeOf(variableNameWeWantToSave.toUpperCase(Locale.ROOT), DataType.FLOATING_POINT); } else { int ix = 0; for (String token : line.getTokens()) { if (token.equalsIgnoreCase(Constants.PIC_VALUE) || (token.equalsIgnoreCase(Constants.PICTURE_VALUE))) { if (Interpreter.isInNumericFormat(line.getToken(ix + 1))) { - numericFields.setDataTypeOf(line.getToken(1).toUpperCase(Locale.ROOT), + numericFields.setDataTypeOf(variableNameWeWantToSave.toUpperCase(Locale.ROOT), DataType.DISPLAY_NUMERIC); } break; @@ -390,6 +401,19 @@ private void updateNumericFields(CobolLine line) { } } + /** + * In order for us to verify wether a given field is numeric, we need to generate a key, + * based on how the datastructure for the field is referenced. + * We will generate this key, by using the fieldname and seperate each datastructure value + * with a comma. + * Example: FIELD IN DATA2 OF DATA1 will get the following key: FIELD,DATA2,DATA1 + */ + private String generateVariableNameBasedOnDataStructure(TreeMap dataStructure) { + NavigableMap descendingMap = dataStructure.descendingMap(); + Collection structureValues = descendingMap.values(); + return String.join(",",structureValues); + } + /** * Updates the line repository with the given line, if it might have further use * when testing. diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/Formatter/Formats/Formatter.java b/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/Formatter/Formats/Formatter.java index b3f77cd4..9b79423b 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/Formatter/Formats/Formatter.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/Formatter/Formats/Formatter.java @@ -115,7 +115,8 @@ else if (expectNumberFailed){ dataTransferObject.setNumberOffAllFailures(tokens[0]); } - else{ + else if (line.trim().toUpperCase(Locale.ROOT).startsWith(passKeyword) || + line.trim().toUpperCase(Locale.ROOT).startsWith(failPrefixKeyword + " " + failKeyword)){ try{ setTestCaseValues(line); } catch (PossibleInternalLogicErrorException e){ diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/LaunchHelper.java b/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/LaunchHelper.java new file mode 100644 index 00000000..ca92ac6f --- /dev/null +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/LaunchHelper.java @@ -0,0 +1,32 @@ +package org.openmainframeproject.cobolcheck.features.launcher; + +import java.util.List; + +public class LaunchHelper { + static String[] generateCommandParms(String processKey, String programName, List compileOptions, boolean surroundWithQuotes) { + /* We want to make a String[] that contains the processKey, + * programName and then list every compile option afterwards. + * Hence the compileOptions size+2 + */ + int commandParmsSize = compileOptions.size()+2; + String[] commandParms = new String[commandParmsSize]; + commandParms[0] = processKey; + if (surroundWithQuotes) + commandParms[1] = "\"" + programName + "\""; + else + commandParms[1] = programName; + /* We want to start at index 2 and add the 1st value from + * the compileOptionsList, hence why we subtract 2 from the + * index value in compileOptions.get() - We then get the value + * from index 0 + */ + for (int i = 2; i < commandParmsSize; i++) { + if (surroundWithQuotes) + commandParms[i] = "\"" + compileOptions.get(i-2) + "\""; + else + commandParms[i] = compileOptions.get(i-2); + + } + return commandParms; + } +} \ No newline at end of file diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/LinuxProcessLauncher.java b/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/LinuxProcessLauncher.java index 49157743..77530893 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/LinuxProcessLauncher.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/LinuxProcessLauncher.java @@ -9,6 +9,7 @@ import org.openmainframeproject.cobolcheck.services.Constants; import java.io.IOException; +import java.util.List; /** * Launch a script to compile and execute a generated test program (Cobol) @@ -53,12 +54,15 @@ public Process run(String programName) { Log.error(Messages.get("ERR022", Config.COBOLCHECK_SCRIPT_DIRECTORY_CONFIG_KEY)); throw new PossibleInternalLogicErrorException(Messages.get("ERR022", Config.COBOLCHECK_SCRIPT_DIRECTORY_CONFIG_KEY)); } - if (!scriptDirectory.endsWith(Constants.FILE_SEPARATOR)) { scriptDirectory += Constants.FILE_SEPARATOR; } + + List compileOptions = Config.getGnuCOBOLCompileOptions(); + String[] commandParms = LaunchHelper.generateCommandParms(scriptDirectory + scriptName, programName, compileOptions, false); + ProcessBuilder processBuilder = new ProcessBuilder(); - processBuilder.command(scriptDirectory + scriptName, programName); + processBuilder.command(commandParms); Process process = null; StringBuilder processArguments = new StringBuilder(); @@ -78,6 +82,4 @@ public Process run(String programName) { } return process; } - - -} +} \ No newline at end of file diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/WindowsProcessLauncher.java b/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/WindowsProcessLauncher.java index 96274ae4..f6399b8c 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/WindowsProcessLauncher.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/WindowsProcessLauncher.java @@ -8,6 +8,7 @@ import org.openmainframeproject.cobolcheck.services.Constants; import java.io.*; +import java.util.List; /** * Launch a script to compile and execute a generated test program (Cobol) @@ -51,8 +52,12 @@ public Process run(String programName) { if (!scriptDirectory.endsWith(Constants.FILE_SEPARATOR)) { scriptDirectory += Constants.FILE_SEPARATOR; } + + List compileOptions = Config.getGnuCOBOLCompileOptions(); + String[] commandParms = LaunchHelper.generateCommandParms(scriptDirectory + scriptName, programName, compileOptions, true); + ProcessBuilder processBuilder = new ProcessBuilder(); - processBuilder.command(scriptDirectory + scriptName, "\"" + programName + "\""); + processBuilder.command(commandParms); Process process = null; StringBuilder processArguments = new StringBuilder(); @@ -72,8 +77,4 @@ public Process run(String programName) { } return process; } - - - - -} +} \ No newline at end of file diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Keywords.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Keywords.java index 6ceebf4d..31e46b2a 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Keywords.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Keywords.java @@ -126,7 +126,9 @@ public class Keywords { new HashMap>() {{ put(Constants.EXPECT_KEYWORD, Arrays.asList( Constants.ALPHANUMERIC_LITERAL_KEYWORD, - Constants.NUMERIC_LITERAL_KEYWORD) + Constants.NUMERIC_LITERAL_KEYWORD, + Constants.BOOLEAN_VALUE, + Constants.COBOL_TOKEN) ); }}, KeywordAction.REVERSE_LOGIC)); @@ -137,6 +139,7 @@ public class Keywords { Arrays.asList(), new HashMap>() {{ put(Constants.EXPECT_KEYWORD, Arrays.asList( + Constants.NUMERIC_KEYWORD, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, Constants.BOOLEAN_VALUE, @@ -150,10 +153,12 @@ public class Keywords { new Keyword(Constants.TO_EQUAL_KEYWORD, Arrays.asList(), new HashMap>() {{ - put(Constants.EXPECT_KEYWORD, Arrays.asList( - Constants.ALPHANUMERIC_LITERAL_KEYWORD, - Constants.NUMERIC_LITERAL_KEYWORD, - Constants.BOOLEAN_VALUE) + put(Constants.EXPECT_KEYWORD, Arrays.asList( + Constants.NUMERIC_KEYWORD, + Constants.ALPHANUMERIC_LITERAL_KEYWORD, + Constants.NUMERIC_LITERAL_KEYWORD, + Constants.BOOLEAN_VALUE, + Constants.COBOL_TOKEN) ); }}, KeywordAction.EXPECTED_VALUE)); @@ -162,15 +167,18 @@ public class Keywords { keywordInfo.put(Constants.EQUAL_SIGN_KEYWORD, new Keyword(Constants.EQUAL_SIGN_KEYWORD, Arrays.asList(Constants.FIELDNAME_KEYWORD, + Constants.NUMERIC_KEYWORD, Constants.COBOL_TOKEN, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, Constants.BOOLEAN_VALUE), new HashMap>() {{ - put(Constants.EXPECT_KEYWORD, Arrays.asList( - Constants.ALPHANUMERIC_LITERAL_KEYWORD, - Constants.NUMERIC_LITERAL_KEYWORD, - Constants.BOOLEAN_VALUE) + put(Constants.EXPECT_KEYWORD, Arrays.asList( + Constants.NUMERIC_KEYWORD, + Constants.ALPHANUMERIC_LITERAL_KEYWORD, + Constants.NUMERIC_LITERAL_KEYWORD, + Constants.BOOLEAN_VALUE, + Constants.COBOL_TOKEN) ); }}, KeywordAction.EXPECTED_VALUE)); @@ -179,15 +187,18 @@ public class Keywords { keywordInfo.put(Constants.GREATER_THAN_SIGN_KEYWORD, new Keyword(Constants.GREATER_THAN_SIGN_KEYWORD, Arrays.asList(Constants.FIELDNAME_KEYWORD, + Constants.NUMERIC_KEYWORD, Constants.COBOL_TOKEN, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, Constants.BOOLEAN_VALUE), new HashMap>() {{ - put(Constants.EXPECT_KEYWORD, Arrays.asList( - Constants.ALPHANUMERIC_LITERAL_KEYWORD, - Constants.NUMERIC_LITERAL_KEYWORD, - Constants.BOOLEAN_VALUE) + put(Constants.EXPECT_KEYWORD, Arrays.asList( + Constants.NUMERIC_KEYWORD, + Constants.ALPHANUMERIC_LITERAL_KEYWORD, + Constants.NUMERIC_LITERAL_KEYWORD, + Constants.BOOLEAN_VALUE, + Constants.COBOL_TOKEN) ); }}, KeywordAction.EXPECTED_VALUE)); @@ -196,15 +207,18 @@ public class Keywords { keywordInfo.put(Constants.GREATER_THAN_EQUAL_TO_SIGN_KEYWORD, new Keyword(Constants.GREATER_THAN_EQUAL_TO_SIGN_KEYWORD, Arrays.asList(Constants.FIELDNAME_KEYWORD, + Constants.NUMERIC_KEYWORD, Constants.COBOL_TOKEN, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, Constants.BOOLEAN_VALUE), new HashMap>() {{ put(Constants.EXPECT_KEYWORD, Arrays.asList( + Constants.NUMERIC_KEYWORD, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, - Constants.BOOLEAN_VALUE) + Constants.BOOLEAN_VALUE, + Constants.COBOL_TOKEN) ); }}, KeywordAction.EXPECTED_VALUE)); @@ -213,15 +227,18 @@ public class Keywords { keywordInfo.put(Constants.LESS_THAN_SIGN_KEYWORD, new Keyword(Constants.LESS_THAN_SIGN_KEYWORD, Arrays.asList(Constants.FIELDNAME_KEYWORD, + Constants.NUMERIC_KEYWORD, Constants.COBOL_TOKEN, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, Constants.BOOLEAN_VALUE), new HashMap>() {{ put(Constants.EXPECT_KEYWORD, Arrays.asList( + Constants.NUMERIC_KEYWORD, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, - Constants.BOOLEAN_VALUE) + Constants.BOOLEAN_VALUE, + Constants.COBOL_TOKEN) ); }}, KeywordAction.EXPECTED_VALUE)); @@ -230,19 +247,38 @@ public class Keywords { keywordInfo.put(Constants.LESS_THAN_EQUAL_TO_SIGN_KEYWORD, new Keyword(Constants.LESS_THAN_EQUAL_TO_SIGN_KEYWORD, Arrays.asList(Constants.FIELDNAME_KEYWORD, + Constants.NUMERIC_KEYWORD, Constants.COBOL_TOKEN, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, Constants.BOOLEAN_VALUE), new HashMap>() {{ put(Constants.EXPECT_KEYWORD, Arrays.asList( + Constants.NUMERIC_KEYWORD, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, - Constants.BOOLEAN_VALUE) + Constants.BOOLEAN_VALUE, + Constants.COBOL_TOKEN) ); }}, KeywordAction.EXPECTED_VALUE)); + //--------------------------------NUMERIC + keywordInfo.put(Constants.NUMERIC_KEYWORD, + new Keyword(Constants.NUMERIC_KEYWORD, + Arrays.asList(), + new HashMap>() {{ + put(Constants.EXPECT_KEYWORD, Arrays.asList( + Constants.ALPHANUMERIC_LITERAL_KEYWORD, + Constants.NUMERIC_LITERAL_KEYWORD, + Constants.BOOLEAN_VALUE, + Constants.COBOL_TOKEN) + ); + }}, + KeywordAction.EXPECTED_VALUE + ) + ); + //--------------------------------PARENTHESIS-ENCLOSED keywordInfo.put(Constants.PARENTHESIS_ENCLOSED_KEYWORD, new Keyword(Constants.PARENTHESIS_ENCLOSED_KEYWORD, diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteErrorLog.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteErrorLog.java index 6b771043..e5abcab2 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteErrorLog.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteErrorLog.java @@ -148,6 +148,15 @@ public void logUnusedMocks(List mocks){ } } + public void logVariableTypeMismatch(String expectedType, String actualType, String currentFile, int lineNumber, int lineIndex){ + String error = ""; + error += String.format(fileMessage, displayErrorType(ErrorTypes.WARNING), currentFile) + ":" + lineNumber + ":" + lineIndex + ":" + Constants.NEWLINE; + error += String.format(lineIndexMessage, lineNumber, lineIndex) + Constants.NEWLINE; + error += "Expected compare to be of type <" + expectedType +">, but the variable was classified as the type <" + actualType + ">" + Constants.NEWLINE; + error += "The test was carried out with the compare type <" + actualType + ">" + Constants.NEWLINE + Constants.NEWLINE; + outputError(error); + } + private void outputError(String error) { errorLogMessages += error; System.out.println(error); diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index 3547f04f..7d22aae0 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -8,10 +8,8 @@ import java.io.BufferedReader; import java.io.IOException; import java.util.ArrayList; -import java.util.Arrays; import java.util.List; import java.util.Locale; -import java.util.regex.Pattern; /** * Parses the concatenated test suite and writes Cobol test code to the output @@ -76,6 +74,7 @@ public class TestSuiteParser { private int testSuiteNumber = 0; private String currentTestCaseName = Constants.EMPTY_STRING; private int testCaseNumber = 0; + private boolean expectNumericCompare; // Lines inserted into the test program private static final String COBOL_PERFORM_INITIALIZE = " PERFORM %sINITIALIZE"; @@ -307,13 +306,6 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, case Constants.COBOL_TOKEN: case Constants.FIELDNAME_KEYWORD: - // TODO:remove when implementing EXPECT NUMERIC - if (testSuiteToken.equals("NUMERIC")) { - Log.debug( - "==WARNING== is not implemented and could cause unintended behaviour ==WARNING=="); - ignoreCobolStatementAndFieldNameKeyAction = true; - break; - } if (expectQualifiedName) { fieldNameForExpect += testSuiteToken; expectQualifiedName = false; @@ -581,6 +573,10 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, toBeInProgress = true; break; + case Constants.NUMERIC_KEYWORD: + expectNumericCompare = true; + break; + case Constants.QUALIFIED_FIELD_NAME: if (cobolTokenIsFieldName){ fieldNameForExpect += Constants.SPACE + testSuiteToken + Constants.SPACE; @@ -889,6 +885,10 @@ void addIncrementTestCaseCountLine(List parsedTestSuiteLines) { void addTestCodeForAssertion(List parsedTestSuiteLines, NumericFields numericFields) { addSetNormalOrReverseCompare(parsedTestSuiteLines); if (boolean88LevelCompare) { + if (expectNumericCompare){ + testSuiteErrorLog.logVariableTypeMismatch(Constants.NUMERIC_KEYWORD, "BOOLEAN88", + currentTestSuiteRealFile, fileLineNumber, fileLineIndexNumber); + } addTestCodeFor88LevelEqualityCheck(parsedTestSuiteLines); } else { if (fieldIsANumericDataType(fieldNameForExpect)) { @@ -899,6 +899,10 @@ void addTestCodeForAssertion(List parsedTestSuiteLines, NumericFields nu parsedTestSuiteLines.add(String.format( COBOL_MOVE_EXPECTED_NUMERIC_LITERAL, testCodePrefix, expectedValueToCompare)); } else { + if (expectNumericCompare){ + testSuiteErrorLog.logVariableTypeMismatch(Constants.NUMERIC_KEYWORD, "ALPHANUMERIC", + currentTestSuiteRealFile, fileLineNumber, fileLineIndexNumber); + } parsedTestSuiteLines.add(String.format( COBOL_SET_ALPHANUMERIC_COMPARE, testCodePrefix, Constants.TRUE)); parsedTestSuiteLines.add(String.format( @@ -919,6 +923,7 @@ void addTestCodeForAssertion(List parsedTestSuiteLines, NumericFields nu greaterThanComparison = false; lessThanComparison = false; } + expectNumericCompare = false; } void addTestCodeFor88LevelEqualityCheck(List parsedTestSuiteLines) { @@ -1009,10 +1014,21 @@ void addFinalLines(List parsedTestSuiteLines) { * @return true when the field name represents any numeric data type */ boolean fieldIsANumericDataType(String fieldNameForExpect) { - // Remove potential qualifiers and indexing, so we only get the single field - // name. - if (fieldNameForExpect != null && !fieldNameForExpect.isEmpty()) - fieldNameForExpect = fieldNameForExpect.split(" ")[0]; + // We want to isolate the datastructure, so we only parse the fieldname and direct referenced structure. + if (fieldNameForExpect != null && !fieldNameForExpect.isEmpty()) { + String[] splitFieldNameForExpect = fieldNameForExpect.split(" "); + fieldNameForExpect = splitFieldNameForExpect[0]; + for (int i = 1; i < splitFieldNameForExpect.length; i+=2) { + if (splitFieldNameForExpect[i].toUpperCase().equals("OF") || splitFieldNameForExpect[i].equals("IN")) { + String inOrOf = splitFieldNameForExpect[i]; + String dataStructureFieldName = splitFieldNameForExpect[i+1]; + if (dataStructureFieldName.contains("(")) + fieldNameForExpect += " " + inOrOf + " " + dataStructureFieldName.substring(0, dataStructureFieldName.indexOf("(")); + else + fieldNameForExpect += " " + splitFieldNameForExpect[i] + " " + splitFieldNameForExpect[i+1]; + } + } + } return numericFields.dataTypeOf(fieldNameForExpect) == DataType.PACKED_DECIMAL || (numericFields.dataTypeOf(fieldNameForExpect) == DataType.FLOATING_POINT) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/services/Config.java b/src/main/java/org/openmainframeproject/cobolcheck/services/Config.java index 61b7e26d..ffea1d5b 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/services/Config.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/services/Config.java @@ -61,6 +61,8 @@ public class Config { public static final String DEFAULT_TESTSUITE_DIRECTORY = "src/test/cobol"; public static final String COBOLCHECK_SCRIPT_DIRECTORY_CONFIG_KEY = "cobolcheck.script.directory"; public static final String DEFAULT_COBOLCHECK_SCRIPT_DIRECTORY = "./"; + public static final String GNUCOBOL_COMPILE_OPTIONS = "gnucobol.compile.options"; + public static final String RESOLVED_GNUCOBOL_COMPILE_OPTIONS = "resolved.gnucobol.compile.options"; private static Properties settings = null; @@ -331,6 +333,16 @@ public static String getScriptDirectory() { DEFAULT_COBOLCHECK_SCRIPT_DIRECTORY)); } + public static List getGnuCOBOLCompileOptions() { + setGnuCOBOLCompileOptions(); + return (List)settings.get(RESOLVED_GNUCOBOL_COMPILE_OPTIONS); + } + + public static void setGnuCOBOLCompileOptions() { + resolveConfigList(GNUCOBOL_COMPILE_OPTIONS, RESOLVED_GNUCOBOL_COMPILE_OPTIONS); + } + + private static void setCopybookFilenameSuffix() { resolveFilenameSuffixes(APPLICATION_COPYBOOK_FILENAME_SUFFIX, RESOLVED_APPLICATION_COPYBOOK_FILENAME_SUFFIX); } @@ -348,6 +360,20 @@ private static void resolveFilenameSuffixes(String configKey, String resolvedCon settings.put(resolvedConfigKey, suffixes); } + private static void resolveConfigList(String configKey, String resolvedConfigKey) { + String configCommaSeperatedList = getString(configKey, "NULL"); + List items = new ArrayList(); + String[] configListValues = null; + if (!configCommaSeperatedList.trim().equalsIgnoreCase("NULL")) { + configListValues = configCommaSeperatedList.split(Constants.COMMA); + for (String item : configListValues) { + items.add(item); + } + } + settings.put(resolvedConfigKey, items); + } + + private static void setDefaultLocaleOverride() { if (!settings.containsKey(LOCALE_LANGUAGE_CONFIG_KEY)) { return; diff --git a/src/main/java/org/openmainframeproject/cobolcheck/services/Constants.java b/src/main/java/org/openmainframeproject/cobolcheck/services/Constants.java index 67b75f08..067800df 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/services/Constants.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/services/Constants.java @@ -83,6 +83,7 @@ private Constants() { public static final String END_BEFORE_TOKEN = "END-BEFORE"; public static final String AFTER_EACH_TOKEN = "AFTER EACH"; public static final String END_AFTER_TOKEN = "END-AFTER"; + public static final String NUMERIC_KEYWORD = "NUMERIC"; public static final String IN_KEYWORD = "IN"; public static final String OF_KEYWORD = "OF"; @@ -90,7 +91,7 @@ private Constants() { public static final String BEFORE_EACH_TOKEN_HYPHEN = "BEFORE-EACH"; public static final String AFTER_EACH_TOKEN_HYPHEN = "AFTER-EACH"; public static final String PARA_TOKEN = "PARA"; - public static final List IGNORED_TOKENS = Arrays.asList("END-CALL", "NUMERIC"); + public static final List IGNORED_TOKENS = Arrays.asList("END-CALL"); // Configuration key values public static final String CONCATENATED_TEST_SUITES_CONFIG_KEY = "concatenated.test.suites"; diff --git a/src/main/java/org/openmainframeproject/cobolcheck/services/StringHelper.java b/src/main/java/org/openmainframeproject/cobolcheck/services/StringHelper.java index 906ac4c2..f7218093 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/services/StringHelper.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/services/StringHelper.java @@ -217,7 +217,10 @@ public static boolean isStringContinuationLine(String line) { } public static String moveToAreaB(String line){ - return " " + line.trim(); + if (line.trim().startsWith("*")) + return " " + line.trim(); + else + return " " + line.trim(); } public static List moveToAreaB(List lines){ diff --git a/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java b/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java index 5e89582e..92fc88d6 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java @@ -4,10 +4,7 @@ import org.openmainframeproject.cobolcheck.features.interpreter.State; import org.openmainframeproject.cobolcheck.services.Constants; -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; -import java.util.Locale; +import java.util.*; /* * Used by Writer @@ -23,7 +20,7 @@ public class Interpreter { // 80-byte length private static final int minimumMeaningfulSourceLineLength = 7; private static final int commentIndicatorOffset = 6; - private static final char commentIndicator = '*'; + private static final List commentIndicators = Arrays.asList('*', '/'); // Used to find areas private static final int sequenceNumberAreaEnd = 6; @@ -198,11 +195,11 @@ public static boolean isTooShortToBeMeaningful(CobolLine line) { * @return true if the source line "looks like" a Cobol comment line. */ public static boolean isComment(CobolLine line) { - return line.getUnNumberedString().charAt(commentIndicatorOffset) == commentIndicator; + return isComment(line.getUnNumberedString()); } public static boolean isComment(String line) { - return line.charAt(commentIndicatorOffset) == commentIndicator; + return commentIndicators.contains(line.charAt(commentIndicatorOffset)); } public static boolean isMeaningful(CobolLine line) { @@ -462,4 +459,42 @@ public static boolean endsInPeriod(CobolLine line) { public static boolean endsInPeriod(List lines) { return lines.size() > 0 && lines.get(lines.size() - 1).getTrimmedString().endsWith(Constants.PERIOD); } + + /** + * Depending on the line that is being interpreted, we want to make sure that we update + * the current datastructure. This structure is based on the lines we have read so far in + * working storage. + * This will make sure to add or remove any referenced field within the structure, based on + * the level of said field within the structure. + */ + public static TreeMap updateCurrentDataStructure(CobolLine line, TreeMap currentHierarchy) { + if (currentHierarchy==null) { + currentHierarchy = new TreeMap<>(); + } + + int lastKeyOfCurrentHierarchy; + if (currentHierarchy.isEmpty()) { + lastKeyOfCurrentHierarchy=0; + } + else { + lastKeyOfCurrentHierarchy = currentHierarchy.lastKey(); + } + int tokenWeWantToAdd; + try { + tokenWeWantToAdd=Integer.parseInt(line.getToken(0)); + } + catch (NumberFormatException e) { + return currentHierarchy; + } + String variableName = line.getToken(1); + while (lastKeyOfCurrentHierarchy > tokenWeWantToAdd && tokenWeWantToAdd > 0) { + currentHierarchy.remove(lastKeyOfCurrentHierarchy); + lastKeyOfCurrentHierarchy = currentHierarchy.lastKey(); + } + if (currentHierarchy.containsKey(tokenWeWantToAdd)) + currentHierarchy.replace(tokenWeWantToAdd, variableName); + else + currentHierarchy.put(tokenWeWantToAdd, variableName); + return currentHierarchy; + } } diff --git a/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/NumericFields.java b/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/NumericFields.java index f71e1720..4e469264 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/NumericFields.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/NumericFields.java @@ -5,6 +5,7 @@ import java.util.HashMap; import java.util.Map; +import java.util.Set; /** * Stores field type information for Data Division items in the program under test so the TestSuiteParser can @@ -22,6 +23,10 @@ public class NumericFields { public DataType dataTypeOf(String fieldName) { argumentCheck(fieldName, "ERR027"); if (fieldTypes == null) reset(); + + // We assume the fieldName has defined a datastructure. + fieldName=getKeyBasedOnAssumedDataStructure(fieldName); + return fieldTypes.getOrDefault(fieldName, DataType.ALPHANUMERIC); } @@ -46,4 +51,36 @@ private void argumentCheck(Object argumentValue, String messageId) { } -} + /** + * Based on the given value of the parsed fieldName, we want to make sure we + * find the correct key based on the datastructre that were referenced. + * If we cannot find the key, we return null + */ + private String getKeyBasedOnAssumedDataStructure(String line) { + // We will attempt to split the line on any " IN " and " OF " statements, to isolate the names + // in the referenced data structure. + String[] nameTokens = line.toUpperCase().split("(?:^|\\W)OF(?:$|\\W)|(?:^|\\W)IN(?:$|\\W)"); + Boolean found=false; + for (String key : fieldTypes.keySet()) { + if (key.toUpperCase().contains(nameTokens[0])) { + int previousNameIndex = 0; + int currentSearchIteration = 1; + found = true; + while (found && currentSearchIteration < nameTokens.length) { + int currentNameIndex = key.toUpperCase().indexOf(nameTokens[currentSearchIteration]); + if (currentNameIndex > previousNameIndex) { + currentSearchIteration++; + previousNameIndex = currentNameIndex; + } + else + found = false; + } + if (found) { + return key; + } + } + } + return null; + } + +} \ No newline at end of file diff --git a/src/test/java/org/openmainframeproject/cobolcheck/KeywordsTest.java b/src/test/java/org/openmainframeproject/cobolcheck/KeywordsTest.java index 9b184dcf..86307dae 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/KeywordsTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/KeywordsTest.java @@ -66,6 +66,7 @@ private static Stream KeywordProvider() { KeywordAction.TESTSUITE_NAME), Arguments.of(Constants.EQUAL_SIGN_KEYWORD, Constants.EQUAL_SIGN_KEYWORD, Arrays.asList(Constants.FIELDNAME_KEYWORD, + Constants.NUMERIC_KEYWORD, Constants.COBOL_TOKEN, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, @@ -76,6 +77,7 @@ private static Stream KeywordProvider() { KeywordAction.REVERSE_LOGIC), Arguments.of(Constants.GREATER_THAN_SIGN_KEYWORD, Constants.GREATER_THAN_SIGN_KEYWORD, Arrays.asList(Constants.FIELDNAME_KEYWORD, + Constants.NUMERIC_KEYWORD, Constants.COBOL_TOKEN, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, @@ -83,6 +85,7 @@ private static Stream KeywordProvider() { KeywordAction.EXPECTED_VALUE), Arguments.of(Constants.LESS_THAN_SIGN_KEYWORD, Constants.LESS_THAN_SIGN_KEYWORD, Arrays.asList(Constants.FIELDNAME_KEYWORD, + Constants.NUMERIC_KEYWORD, Constants.COBOL_TOKEN, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, @@ -90,6 +93,7 @@ private static Stream KeywordProvider() { KeywordAction.EXPECTED_VALUE), Arguments.of(Constants.GREATER_THAN_EQUAL_TO_SIGN_KEYWORD, Constants.GREATER_THAN_EQUAL_TO_SIGN_KEYWORD, Arrays.asList(Constants.FIELDNAME_KEYWORD, + Constants.NUMERIC_KEYWORD, Constants.COBOL_TOKEN, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, @@ -97,6 +101,7 @@ private static Stream KeywordProvider() { KeywordAction.EXPECTED_VALUE), Arguments.of(Constants.LESS_THAN_EQUAL_TO_SIGN_KEYWORD, Constants.LESS_THAN_EQUAL_TO_SIGN_KEYWORD, Arrays.asList(Constants.FIELDNAME_KEYWORD, + Constants.NUMERIC_KEYWORD, Constants.COBOL_TOKEN, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, diff --git a/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java b/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java index 525abd66..817d51ae 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java @@ -192,18 +192,20 @@ public void call_mock_gets_call_type() throws IOException { @Test public void mock_gets_correct_lines() throws IOException { - String str1 = " TESTSUITE \"Name of test suite\""; - String str2 = " TESTCASE \"Name of test case\""; - String str3 = " MOCK SECTION 000-START"; - String str4 = " MOVE \"something\" TO this"; - String str5 = " MOVE \"something else\" TO other"; - String str6 = " END-MOCK"; + String str1 = " TESTSUITE \"Name of test suite\""; + String str2 = " TESTCASE \"Name of test case\""; + String str3 = " MOCK SECTION 000-START"; + String str4 = " * MOVE \"something\" TO this"; + String str5 = " MOVE \"something\" TO this"; + String str6 = " MOVE \"something else\" TO other"; + String str7 = " END-MOCK"; List expected = new ArrayList<>(); + expected.add(" * MOVE \"something\" TO this"); expected.add(" MOVE \"something\" TO this"); expected.add(" MOVE \"something else\" TO other"); - Mockito.when(mockedReader.readLine()).thenReturn(str1, str2, str3, str4, str5, str6, null); + Mockito.when(mockedReader.readLine()).thenReturn(str1, str2, str3, str4, str5, str6, str7, null); testSuiteParser.getParsedTestSuiteLines(mockedReader, numericFields); assertEquals(expected, mockRepository.getMocks().get(0).getLines()); diff --git a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java index 88c860a2..e79ffd76 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java @@ -11,6 +11,7 @@ import org.openmainframeproject.cobolcheck.features.writer.CobolWriter; import org.openmainframeproject.cobolcheck.services.Config; import org.openmainframeproject.cobolcheck.services.Constants; +import org.openmainframeproject.cobolcheck.services.cobolLogic.DataType; import org.openmainframeproject.cobolcheck.services.cobolLogic.NumericFields; import java.io.BufferedReader; @@ -392,3 +393,37 @@ public void it_catches_unexpected_keyword_after_verify() { } } + +@Test +public void it_catches_type_mismatch_of_numeric_and_alphanumeric_for_explicit_numeric_in_unit_test() { + testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); + testSuite.append(" TESTCASE \"Name of test case\""+ Constants.NEWLINE); + testSuite.append(" EXPECT WS-ALPHA-VALUE TO BE NUMERIC \"Hello\""+ Constants.NEWLINE); + + String expectedResult = ""; + expectedResult += "WARNING in file: null:3:44:" + Constants.NEWLINE; + expectedResult += "Unexpected token on line 3, index 44:" + Constants.NEWLINE; + expectedResult += "Expected compare to be of type , but the variable was classified as the type " + Constants.NEWLINE; + expectedResult += "The test was carried out with the compare type " + Constants.NEWLINE + Constants.NEWLINE; + + testSuiteParser.getParsedTestSuiteLines(new BufferedReader(new StringReader(testSuite.toString())), numericFields); + + String actualResult = testSuiteErrorLog.getErrorMessages(); + assertEquals(expectedResult, actualResult); +} + +@Test +public void explicit_numeric_gives_no_warning_when_variable_is_numeric() { + testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); + testSuite.append(" TESTCASE \"Name of test case\""+ Constants.NEWLINE); + testSuite.append(" EXPECT WS-NUMERIC-VALUE TO BE NUMERIC 1"+ Constants.NEWLINE); + + String expectedResult = ""; + + numericFields.setDataTypeOf("WS-NUMERIC-VALUE", DataType.PACKED_DECIMAL); + + testSuiteParser.getParsedTestSuiteLines(new BufferedReader(new StringReader(testSuite.toString())), numericFields); + + String actualResult = testSuiteErrorLog.getErrorMessages(); + assertEquals(expectedResult, actualResult); +} diff --git a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteParserParsingTest.java b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteParserParsingTest.java index 1f14a72e..0fe24d18 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteParserParsingTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteParserParsingTest.java @@ -194,7 +194,7 @@ public void it_accepts_parenthesis_in_item_in_EXPECT() { public void it_finds_correct_data_type_for_table() { String expectedLine = " SET UT-NUMERIC-COMPARE TO TRUE"; testSuite.append(" EXPECT TABLE-FIELD IN WS-FIELDS (2 3) TO BE \"some value\""); - numericFields.setDataTypeOf("TABLE-FIELD", DataType.DISPLAY_NUMERIC); + numericFields.setDataTypeOf("TABLE-FIELD,WS-FIELDS", DataType.DISPLAY_NUMERIC); List actual = testSuiteParser.getParsedTestSuiteLines( new BufferedReader(new StringReader(testSuite.toString())), numericFields); diff --git a/vs code extension/CHANGELOG.md b/vs code extension/CHANGELOG.md index 25d024b7..3d9e0fa0 100644 --- a/vs code extension/CHANGELOG.md +++ b/vs code extension/CHANGELOG.md @@ -1,6 +1,17 @@ # Change Log All notable changes to the "cobol-unit-test" extension will be documented in this file. Versioning according to SemVer: https://semver.org/ +All notable changes to the "cobol-unit-test" extension will be documented in this file. Versioning according to SemVer: https://semver.org/ + +## [0.3.9] 02.01.2023 +- Bugfix: Fixed an issue where the configure-command would remove a line from the configuration file, everytime you would overwrite an existing value. + +## [0.3.8] 21.12.2022 +- Fix for last release + +## [0.3.7] 21.12.2022 +- Now using Cobol Check version 0.2.5 +- Prepared for GnuCOBOL compiler options in config and scripts ## [0.3.6] 02.11.2022 - Now using Cobol Check version 0.2.4 diff --git a/vs code extension/Cobol-check/bin/cobol-check-0.2.4.jar b/vs code extension/Cobol-check/bin/cobol-check-0.2.4.jar deleted file mode 100644 index 4ecdcf0bdf2a4e47988909cf91e17c21d8f15273..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 239745 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%0DF<;(Rs_JZ>F5Bc_=SaZ3(xC*?g@40{ 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

cjfSu>ZSe6rI3~RaoQ4M zQoz-O)=n9vYX0iq<67YeEE1W>>lg*4)cFcz%cSq`_aM2{Si>;zJP2T!1e@rjcjKFfM$Rv46I8+oUg`< zO{)!3jShwC<;J3;dHykV+7>7*6=+&a`wfavLrKG@($`2s?}n|Z|M*ZM1aVwW;D6{O znAf`DGvT^BTf9GP{P%~G4?I|PtP4Xg3;RQ?!8?(eeZZe1Z2DqGY`qg@Vh%Y0*H(df zLkM~E@Y#bl!(d}0#ijBa!PIv^ZS=a2dHaWtT?VT)DFk;@0-or>!nec~UR-zpJ_U2P zOcCX_$l-(O8$y0DlTm*yt&ztj z$rILXti=;yE%wlMT(j|ehb=TYZi38nUHeCZF(y!8BMa=vS_X%GSmCJ17JqDuM*p?P zd@Bg>5UgsBvZ(FN5$I_`awmI07-epaja_L`Hfud#1wn6g)2DTN1XyH=%r8||a*QaN z1@T)hj4{!PGKsPgvTg7bUjiKOz-nsq(~kodJ%DwA5gyvw=N^v$ZG)q(HKThNwzUU4 zvub}KBhD;b#U_?WMjuy%j2La2%ngyn-zT799avk1^qsE5c|D8^vDL^~rE3Vaf@=>r z&f5yP*^tG`Mh}_3V3)!XY=X z3GyT2sId0McSs=D)7_Ct1!a(dlQ9DU-^szZhR^7OVQW>nR=xWg5OaWtj_2bWhpkl~ z(UMH|q4{BRf2<#`unj7=7etR}Uo2>1lWR*OnUg$Otk)54mvFL%#>)*BQ=)w_x|L0i z9TnN%`Lp_KA5kuYOy#sgCDTI{pHa`SVD>aWR-3ry7)~^P1q=t^4U8-hSK0o9P1a8+ z7kQ7LfLRHy)8HcLV#?v-VJ}{QpdP!yW!^=v*l#(ca;0Ca-WBbV2q~==Ul` z{}b9+NHF|PT4q3-UZSmuor9%4HcjUJdENI=OiohF73iMy@MtUSu(V>n!JeU5a65#(nn8mSeu*eSl#*i*3fB``(#3%-5g~aH3|j%jvxootc2Vk>SxwjMvi-?a-6| zJp$uOSyUH}b(=Zk?a9Gm?7o`87*Wv*1{(|8G zQ8zC#1DUS|8vsV=3>S#HD2y4%e5uU<&_sXOz`#vxkoiRL h0brBGaDk}v!EG#fAu-6sbs7FChwdZB76Kx!{{b(_!!rN? diff --git a/vs code extension/Cobol-check/config.properties b/vs code extension/Cobol-check/config.properties index d2aeafa7..9b32b5d6 100644 --- a/vs code extension/Cobol-check/config.properties +++ b/vs code extension/Cobol-check/config.properties @@ -163,6 +163,18 @@ application.copybook.filename.suffix = CBL,cbl,COB,cob #--------------------------------------------------------------------------------------------------------------------- concatenated.test.suites = Cobol-check/ALLTESTS +#--------------------------------------------------------------------------------------------------------------------- +# The GnuCOBOL compiler has a lot of different compile options. +# Some of these options are gathered in a dialect file (default: default.conf) +# and are located in the "GnuCOBOL-installationfolder/config"-folder. +# If you need any specific dialect file or other GnuCOBOL-specific compile options, you can add them here. +# If not specified, the default will be the normal GnuCOBOL compile setup. +# Separate options with a comma. Set the value to 'null' for default compile options +# Example: +# gnucobol.compile.options = -std=ibm,-fsingle-quote +#--------------------------------------------------------------------------------------------------------------------- +gnucobol.compile.options = null + #--------------------------------------------------------------------------------------------------------------------- # Shell scripts and JCL files for executing your test suites. # Cobol Check will invoke one of these after creating the copy of the program under test that contains @@ -181,3 +193,5 @@ freebsd.process = linux_gnucobol_run_tests windows.process = windows_gnucobol_run_tests.cmd zos.process = unix.process = linux_gnucobol_run_tests +cobol_run_tests +cobol_run_tests \ No newline at end of file diff --git a/vs code extension/Cobol-check/default.properties b/vs code extension/Cobol-check/default.properties index d2aeafa7..86881a1e 100644 --- a/vs code extension/Cobol-check/default.properties +++ b/vs code extension/Cobol-check/default.properties @@ -163,6 +163,18 @@ application.copybook.filename.suffix = CBL,cbl,COB,cob #--------------------------------------------------------------------------------------------------------------------- concatenated.test.suites = Cobol-check/ALLTESTS +#--------------------------------------------------------------------------------------------------------------------- +# The GnuCOBOL compiler has a lot of different compile options. +# Some of these options are gathered in a dialect file (default: default.conf) +# and are located in the "GnuCOBOL-installationfolder/config"-folder. +# If you need any specific dialect file or other GnuCOBOL-specific compile options, you can add them here. +# If not specified, the default will be the normal GnuCOBOL compile setup. +# Separate options with a comma. Set the value to 'null' for default compile options +# Example: +# gnucobol.compile.options = -std=ibm,-fsingle-quote +#--------------------------------------------------------------------------------------------------------------------- +gnucobol.compile.options = null + #--------------------------------------------------------------------------------------------------------------------- # Shell scripts and JCL files for executing your test suites. # Cobol Check will invoke one of these after creating the copy of the program under test that contains diff --git a/vs code extension/Cobol-check/scripts/windows_gnucobol_run_tests.cmd b/vs code extension/Cobol-check/scripts/windows_gnucobol_run_tests.cmd index 75e36983..3bfb01c4 100644 --- a/vs code extension/Cobol-check/scripts/windows_gnucobol_run_tests.cmd +++ b/vs code extension/Cobol-check/scripts/windows_gnucobol_run_tests.cmd @@ -5,4 +5,4 @@ rem Assumptions: rem rem GnuCOBOL 3.+ is installed and on the path. Its executable or alias or symlink is named "cobc". -cobc -x %1 && %~n1 \ No newline at end of file +cobc -x %* && %~n1 \ No newline at end of file diff --git a/vs code extension/client/src/extension.ts b/vs code extension/client/src/extension.ts index f848973f..e667e6a8 100644 --- a/vs code extension/client/src/extension.ts +++ b/vs code extension/client/src/extension.ts @@ -19,7 +19,7 @@ import path = require('path'); let externalVsCodeInstallationDir = vscode.extensions.getExtension("openmainframeproject.cobol-check-extension").extensionPath; let configPath = appendPath(externalVsCodeInstallationDir, 'Cobol-check/config.properties'); let defaultConfigPath = appendPath(externalVsCodeInstallationDir, 'Cobol-check/default.properties'); -let cobolCheckJarPath = appendPath(externalVsCodeInstallationDir, 'Cobol-check/bin/cobol-check-0.2.2.jar'); +let cobolCheckJarPath = appendPath(externalVsCodeInstallationDir, 'Cobol-check/bin/cobol-check-0.2.5.jar'); let lastCurrentFile = null; let cutLanguageRunning = false; @@ -57,17 +57,19 @@ export function activate(context: ExtensionContext) { }); }); - let setConfiguration_Cmd = vscode.commands.registerCommand('cobolcheck.configure', () => { - getConfigurationMap(configPath, async (configMap) => { - if (configMap === null) return; - const configKey = await vscode.window.showQuickPick(Array.from(configMap.keys()), {placeHolder: 'Pick a configuration'}); - if (configKey === undefined) return; - - const newValue = await vscode.window.showInputBox({placeHolder: 'New configuration value'}) - if (newValue === undefined) return; - - setConfiguration(configPath, configKey, newValue); - }); + let setConfiguration_Cmd = vscode.commands.registerCommand('cobolcheck.configure', (key : string, value : string) => { + if (key && value){ + setConfiguration(configPath, key, value); + } + else{ + getConfigurationMap(configPath, async (configMap) => { + if (configMap === null) return; + key = await vscode.window.showQuickPick(Array.from(configMap.keys()), {placeHolder: 'Pick a configuration'}); + const value = await vscode.window.showInputBox({placeHolder: 'New configuration value'}) + if (!key || !value) return; + setConfiguration(configPath, key, value); + }); + } }); let resetConfigurations_Cmd = vscode.commands.registerCommand('cobolcheck.reset.configuration', () => { diff --git a/vs code extension/client/src/services/CobolCheckConfiguration.ts b/vs code extension/client/src/services/CobolCheckConfiguration.ts index 03acee16..b8df8049 100644 --- a/vs code extension/client/src/services/CobolCheckConfiguration.ts +++ b/vs code extension/client/src/services/CobolCheckConfiguration.ts @@ -52,7 +52,7 @@ export function setConfiguration(configurationPath : string, key : string, newVa let keyValue = trimmedLine.split('='); if (keyValue.length > 1 && keyValue[0].trim() === key){ - newConfigurationText += key + ' = ' + newValue; + newConfigurationText += key + ' = ' + newValue + '\n'; keyHasBeenFound = true; LOGGER.log("Updated configuration key: " + key + " with value: " + newValue, LOGGER.INFO); } else{ @@ -62,6 +62,7 @@ export function setConfiguration(configurationPath : string, key : string, newVa if (!keyHasBeenFound){ vscode.window.showErrorMessage('Could not find key: ' + key + ' in config file: ' + configurationPath) + return; } fs.writeFile(configurationPath, newConfigurationText, 'utf8', function (err) { if(err) { diff --git a/vs code extension/package.json b/vs code extension/package.json index 8c69a62e..6a61465a 100644 --- a/vs code extension/package.json +++ b/vs code extension/package.json @@ -8,7 +8,7 @@ "Snippets" ], "description": "Extension for running unit tests in Cobol", - "version": "0.3.6", + "version": "0.3.9", "icon": "images/cobol-check-logo-small.png", "engines": { "vscode": "^1.46.0" From 35bec3c76ed4788ef2f9f47e00b4a37800a07191 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20M=C3=B8nster?= Date: Tue, 14 Feb 2023 11:26:43 +0100 Subject: [PATCH 011/180] Minor fix MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Benjamin Mønster --- .github/workflows/VerifyAction.yml | 2 +- .../org/openmainframeproject/cobolcheck/services/Config.java | 2 -- .../cobolcheck/services/cobolLogic/NumericFields.java | 4 ++-- vs code extension/CHANGELOG.md | 4 +--- vs code extension/Cobol-check/config.properties | 2 +- 5 files changed, 5 insertions(+), 9 deletions(-) diff --git a/.github/workflows/VerifyAction.yml b/.github/workflows/VerifyAction.yml index 7583459d..9daf0047 100644 --- a/.github/workflows/VerifyAction.yml +++ b/.github/workflows/VerifyAction.yml @@ -13,7 +13,7 @@ jobs: runs-on: ${{ matrix.os }} strategy: matrix: - os: [ubuntu-18.04, windows-latest, macos-latest] + os: [ubuntu-22.04, windows-latest, macos-latest] java-version: [8, 11] steps: diff --git a/src/main/java/org/openmainframeproject/cobolcheck/services/Config.java b/src/main/java/org/openmainframeproject/cobolcheck/services/Config.java index ffea1d5b..d32829ea 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/services/Config.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/services/Config.java @@ -342,7 +342,6 @@ public static void setGnuCOBOLCompileOptions() { resolveConfigList(GNUCOBOL_COMPILE_OPTIONS, RESOLVED_GNUCOBOL_COMPILE_OPTIONS); } - private static void setCopybookFilenameSuffix() { resolveFilenameSuffixes(APPLICATION_COPYBOOK_FILENAME_SUFFIX, RESOLVED_APPLICATION_COPYBOOK_FILENAME_SUFFIX); } @@ -373,7 +372,6 @@ private static void resolveConfigList(String configKey, String resolvedConfigKey settings.put(resolvedConfigKey, items); } - private static void setDefaultLocaleOverride() { if (!settings.containsKey(LOCALE_LANGUAGE_CONFIG_KEY)) { return; diff --git a/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/NumericFields.java b/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/NumericFields.java index 4e469264..8586a05b 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/NumericFields.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/NumericFields.java @@ -23,7 +23,7 @@ public class NumericFields { public DataType dataTypeOf(String fieldName) { argumentCheck(fieldName, "ERR027"); if (fieldTypes == null) reset(); - + // We assume the fieldName has defined a datastructure. fieldName=getKeyBasedOnAssumedDataStructure(fieldName); @@ -52,7 +52,7 @@ private void argumentCheck(Object argumentValue, String messageId) { } /** - * Based on the given value of the parsed fieldName, we want to make sure we + * Based on the given value of the parsed fieldName, we want to make sure we * find the correct key based on the datastructre that were referenced. * If we cannot find the key, we return null */ diff --git a/vs code extension/CHANGELOG.md b/vs code extension/CHANGELOG.md index 3d9e0fa0..0109b2e3 100644 --- a/vs code extension/CHANGELOG.md +++ b/vs code extension/CHANGELOG.md @@ -1,8 +1,6 @@ # Change Log -All notable changes to the "cobol-unit-test" extension will be documented in this file. Versioning according to SemVer: https://semver.org/ -All notable changes to the "cobol-unit-test" extension will be documented in this file. Versioning according to SemVer: https://semver.org/ - +All notable changes to the "cobol-unit-test" extension will be documented in this file. Versioning according to SemVer: https://semver.org/ ## [0.3.9] 02.01.2023 - Bugfix: Fixed an issue where the configure-command would remove a line from the configuration file, everytime you would overwrite an existing value. diff --git a/vs code extension/Cobol-check/config.properties b/vs code extension/Cobol-check/config.properties index 9b32b5d6..5347f7b0 100644 --- a/vs code extension/Cobol-check/config.properties +++ b/vs code extension/Cobol-check/config.properties @@ -194,4 +194,4 @@ windows.process = windows_gnucobol_run_tests.cmd zos.process = unix.process = linux_gnucobol_run_tests cobol_run_tests -cobol_run_tests \ No newline at end of file +cobol_run_tests From 2a11a67e370224d71dc013ead5dfbae7bd483b51 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20M=C3=B8nster?= Date: Tue, 14 Feb 2023 11:30:55 +0100 Subject: [PATCH 012/180] Fix --- .../cobolcheck/features/launcher/LaunchHelper.java | 2 +- .../cobolcheck/features/launcher/LinuxProcessLauncher.java | 4 +++- .../cobolcheck/services/cobolLogic/NumericFields.java | 4 ++-- testsuites/concatenatedTestsuites | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/LaunchHelper.java b/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/LaunchHelper.java index ca92ac6f..fbc97b3a 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/LaunchHelper.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/LaunchHelper.java @@ -29,4 +29,4 @@ static String[] generateCommandParms(String processKey, String programName, List } return commandParms; } -} \ No newline at end of file +} diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/LinuxProcessLauncher.java b/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/LinuxProcessLauncher.java index 77530893..814e54b8 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/LinuxProcessLauncher.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/LinuxProcessLauncher.java @@ -54,6 +54,7 @@ public Process run(String programName) { Log.error(Messages.get("ERR022", Config.COBOLCHECK_SCRIPT_DIRECTORY_CONFIG_KEY)); throw new PossibleInternalLogicErrorException(Messages.get("ERR022", Config.COBOLCHECK_SCRIPT_DIRECTORY_CONFIG_KEY)); } + if (!scriptDirectory.endsWith(Constants.FILE_SEPARATOR)) { scriptDirectory += Constants.FILE_SEPARATOR; } @@ -82,4 +83,5 @@ public Process run(String programName) { } return process; } -} \ No newline at end of file + +} diff --git a/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/NumericFields.java b/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/NumericFields.java index 8586a05b..66aa6f9f 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/NumericFields.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/NumericFields.java @@ -52,7 +52,7 @@ private void argumentCheck(Object argumentValue, String messageId) { } /** - * Based on the given value of the parsed fieldName, we want to make sure we + * Based on the given value of the parsed fieldName, we want to make sure we * find the correct key based on the datastructre that were referenced. * If we cannot find the key, we return null */ @@ -83,4 +83,4 @@ private String getKeyBasedOnAssumedDataStructure(String line) { return null; } -} \ No newline at end of file +} diff --git a/testsuites/concatenatedTestsuites b/testsuites/concatenatedTestsuites index c2f94363..d340edc7 100644 --- a/testsuites/concatenatedTestsuites +++ b/testsuites/concatenatedTestsuites @@ -1,4 +1,4 @@ - *From file: C:\workspace\cobol-check\src\test\cobol\GREETING\GreetingByType.cut + *From file: C:\Udvikler\Workspace\cobol-check-main\src\test\cobol\GREETING\GreetingByType.cut TESTSUITE "Greeting returns the appropriate message based on message type" From 2c11cf964d960435bf0eba9f44f4604237b03cb1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20M=C3=B8nster?= Date: Tue, 14 Feb 2023 11:32:28 +0100 Subject: [PATCH 013/180] Removed space in readme MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Benjamin Mønster --- vs code extension/CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vs code extension/CHANGELOG.md b/vs code extension/CHANGELOG.md index 0109b2e3..4c110f41 100644 --- a/vs code extension/CHANGELOG.md +++ b/vs code extension/CHANGELOG.md @@ -1,6 +1,6 @@ # Change Log -All notable changes to the "cobol-unit-test" extension will be documented in this file. Versioning according to SemVer: https://semver.org/ +All notable changes to the "cobol-unit-test" extension will be documented in this file. Versioning according to SemVer: https://semver.org/ ## [0.3.9] 02.01.2023 - Bugfix: Fixed an issue where the configure-command would remove a line from the configuration file, everytime you would overwrite an existing value. From e5f84cebc5effd97d3127d5e53019e58f53d1cff Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20M=C3=B8nster?= Date: Tue, 14 Feb 2023 14:23:14 +0100 Subject: [PATCH 014/180] FIx MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Benjamin Mønster --- .../cobolcheck/TestSuiteErrorLogTest.java | 52 +++++++++---------- 1 file changed, 26 insertions(+), 26 deletions(-) diff --git a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java index e79ffd76..7e1d7805 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java @@ -392,38 +392,38 @@ public void it_catches_unexpected_keyword_after_verify() { assertEquals(expectedResult, actualResult); } -} + @Test + public void it_catches_type_mismatch_of_numeric_and_alphanumeric_for_explicit_numeric_in_unit_test() { + testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); + testSuite.append(" TESTCASE \"Name of test case\""+ Constants.NEWLINE); + testSuite.append(" EXPECT WS-ALPHA-VALUE TO BE NUMERIC \"Hello\""+ Constants.NEWLINE); -@Test -public void it_catches_type_mismatch_of_numeric_and_alphanumeric_for_explicit_numeric_in_unit_test() { - testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); - testSuite.append(" TESTCASE \"Name of test case\""+ Constants.NEWLINE); - testSuite.append(" EXPECT WS-ALPHA-VALUE TO BE NUMERIC \"Hello\""+ Constants.NEWLINE); + String expectedResult = ""; + expectedResult += "WARNING in file: null:3:44:" + Constants.NEWLINE; + expectedResult += "Unexpected token on line 3, index 44:" + Constants.NEWLINE; + expectedResult += "Expected compare to be of type , but the variable was classified as the type " + Constants.NEWLINE; + expectedResult += "The test was carried out with the compare type " + Constants.NEWLINE + Constants.NEWLINE; - String expectedResult = ""; - expectedResult += "WARNING in file: null:3:44:" + Constants.NEWLINE; - expectedResult += "Unexpected token on line 3, index 44:" + Constants.NEWLINE; - expectedResult += "Expected compare to be of type , but the variable was classified as the type " + Constants.NEWLINE; - expectedResult += "The test was carried out with the compare type " + Constants.NEWLINE + Constants.NEWLINE; + testSuiteParser.getParsedTestSuiteLines(new BufferedReader(new StringReader(testSuite.toString())), numericFields); - testSuiteParser.getParsedTestSuiteLines(new BufferedReader(new StringReader(testSuite.toString())), numericFields); + String actualResult = testSuiteErrorLog.getErrorMessages(); + assertEquals(expectedResult, actualResult); + } - String actualResult = testSuiteErrorLog.getErrorMessages(); - assertEquals(expectedResult, actualResult); -} + @Test + public void explicit_numeric_gives_no_warning_when_variable_is_numeric() { + testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); + testSuite.append(" TESTCASE \"Name of test case\""+ Constants.NEWLINE); + testSuite.append(" EXPECT WS-NUMERIC-VALUE TO BE NUMERIC 1"+ Constants.NEWLINE); -@Test -public void explicit_numeric_gives_no_warning_when_variable_is_numeric() { - testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); - testSuite.append(" TESTCASE \"Name of test case\""+ Constants.NEWLINE); - testSuite.append(" EXPECT WS-NUMERIC-VALUE TO BE NUMERIC 1"+ Constants.NEWLINE); + String expectedResult = ""; - String expectedResult = ""; + numericFields.setDataTypeOf("WS-NUMERIC-VALUE", DataType.PACKED_DECIMAL); - numericFields.setDataTypeOf("WS-NUMERIC-VALUE", DataType.PACKED_DECIMAL); + testSuiteParser.getParsedTestSuiteLines(new BufferedReader(new StringReader(testSuite.toString())), numericFields); - testSuiteParser.getParsedTestSuiteLines(new BufferedReader(new StringReader(testSuite.toString())), numericFields); + String actualResult = testSuiteErrorLog.getErrorMessages(); + assertEquals(expectedResult, actualResult); + } - String actualResult = testSuiteErrorLog.getErrorMessages(); - assertEquals(expectedResult, actualResult); -} +} \ No newline at end of file From e668596837fdea21590c2bbb53b205ad0f0ef2de Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20M=C3=B8nster?= Date: Tue, 14 Feb 2023 14:39:13 +0100 Subject: [PATCH 015/180] Added check for Working Storage in controller --- .../features/interpreter/InterpreterController.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java index 3fc3a196..7c59c05a 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java @@ -133,13 +133,17 @@ public boolean shouldCurrentLineBeParsed() { } public boolean shouldCurrentLineBeStubbed() throws IOException { - if (reader.getState().isFlagSetFor(Constants.PROCEDURE_DIVISION)) + if (reader.getState().isFlagSetFor(Constants.PROCEDURE_DIVISION)) { if (Interpreter.shouldLineBeStubbed(reader.getCurrentLine(), reader.getState())) { if (!insideSectionOrParagraphMockBody && Interpreter.endsInPeriod(reader.getCurrentLine())) - reader.putNextLine(" ."); + reader.putNextLine(" ."); reader.putNextLine(" CONTINUE"); return true; } + } + if (reader.getState().isFlagSetFor(Constants.WORKING_STORAGE_SECTION)) { + return Interpreter.shouldLineBeStubbed(reader.getCurrentLine(), reader.getState()); + } if (reader.getState().isFlagSetFor(Constants.LINKAGE_SECTION)) { if (Interpreter.shouldLineBeStubbed(reader.getCurrentLine(), reader.getState())) { return true; From a6228016a7c0ea60774183f0e9e91682fca73165 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20M=C3=B8nster?= Date: Tue, 14 Feb 2023 14:50:10 +0100 Subject: [PATCH 016/180] Simplified if-statements MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Benjamin Mønster --- .../features/interpreter/InterpreterController.java | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java index 7c59c05a..0dc2d515 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java @@ -141,14 +141,9 @@ public boolean shouldCurrentLineBeStubbed() throws IOException { return true; } } - if (reader.getState().isFlagSetFor(Constants.WORKING_STORAGE_SECTION)) { + if (reader.getState().isFlagSetFor(Constants.WORKING_STORAGE_SECTION)||reader.getState().isFlagSetFor(Constants.LINKAGE_SECTION)) { return Interpreter.shouldLineBeStubbed(reader.getCurrentLine(), reader.getState()); } - if (reader.getState().isFlagSetFor(Constants.LINKAGE_SECTION)) { - if (Interpreter.shouldLineBeStubbed(reader.getCurrentLine(), reader.getState())) { - return true; - } - } return false; } From 40d2e77219e4bfb5ed8c77753eb5b3ed4874f912 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20M=C3=B8nster?= Date: Wed, 15 Feb 2023 11:23:50 +0100 Subject: [PATCH 017/180] Overhaul indents + Comments fixed MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Benjamin Mønster --- ALLTESTS | 8 - CC##99.CBL | 572 ------- approval-test-expected.txt | 272 ---- .../interpreter/CopybookExpander.java | 21 +- .../interpreter/InterpreterController.java | 61 +- .../features/testSuiteParser/Keywords.java | 1398 ++++++++++------- .../services/cobolLogic/Interpreter.java | 36 +- 7 files changed, 887 insertions(+), 1481 deletions(-) delete mode 100644 ALLTESTS delete mode 100644 CC##99.CBL delete mode 100644 approval-test-expected.txt diff --git a/ALLTESTS b/ALLTESTS deleted file mode 100644 index 442f0c50..00000000 --- a/ALLTESTS +++ /dev/null @@ -1,8 +0,0 @@ - *From file: C:\workspace\cobol-check\src\test\cobol\DB2PROG\DB2TEST.cut - TestSuite "Tests of DB2 includes" - - TestCase "DB2 Copybook added to PRG" - move "John" to FIRST-NAME - move "Doe" to LAST-NAME - Expect FIRST-NAME to be "John" - Expect LAST-NAME to be "Doe" diff --git a/CC##99.CBL b/CC##99.CBL deleted file mode 100644 index dc682c91..00000000 --- a/CC##99.CBL +++ /dev/null @@ -1,572 +0,0 @@ - IDENTIFICATION DIVISION. - PROGRAM-ID. DB2PROG. - ***************************************************************** - * Program to exercise DB2 instructions - ***************************************************************** - ENVIRONMENT DIVISION. - INPUT-OUTPUT SECTION. - FILE-CONTROL. - DATA DIVISION. - WORKING-STORAGE SECTION. - * CCHECKWS.CPY - 01 FILLER PIC X(32) VALUE '******* COBOLCHECK 0.0.1 *******'. - 01 UT-FIELDS. - 05 UT-CONST-ES PIC X(02) VALUE 'ES'. - 05 UT-LABEL-EXPECTED-ACCESS. - 10 FILLER PIC X(06) VALUE 'ACCESS'. - 10 UT-LABEL-EXPECTED-ACCESS-PL - PIC X(02) VALUE SPACES. - 05 UT-LABEL-VERIFY-COMPARE - PIC X(12) VALUE SPACES. - 05 UT-VERIFY-COMPARE-STRINGS. - 10 UT-VERIFY-EXACT-STRING - PIC X(05) VALUE 'EXACT'. - 10 UT-VERIFY-AT-LEAST-STRING - PIC X(08) VALUE 'AT LEAST'. - 10 UT-VERIFY-NO-MORE-THAN-STRING - PIC X(12) VALUE 'NO MORE THAN'. - 05 UT-DISPLAY-MESSAGE PIC X(256) VALUE SPACES. - 05 FILLER PIC X(02) VALUE SPACES. - 88 UT-RELATION-EQ VALUE SPACES, 'EQ'. - 88 UT-RELATION-GE VALUE 'GE'. - 88 UT-RELATION-GT VALUE 'GT'. - 88 UT-RELATION-LE VALUE 'LE'. - 88 UT-RELATION-LT VALUE 'LT'. - 05 FILLER PIC X(01) VALUE SPACES. - 88 UT-NORMAL-COMPARE VALUE 'N'. - 88 UT-REVERSE-COMPARE VALUE 'Y'. - 05 FILLER PIC X(01) VALUE '1'. - 88 UT-VERIFY-EXACT VALUE '1'. - 88 UT-VERIFY-AT-LEAST VALUE '2'. - 88 UT-VERIFY-NO-MORE-THAN VALUE '3'. - 05 FILLER PIC X(01) VALUE SPACES. - 88 UT-VERIFY-PASSED VALUE 'Y'. - 88 UT-VERIFY-FAILED VALUE SPACES. - 05 FILLER PIC X(01) VALUE SPACES. - 88 UT-ALPHANUMERIC-COMPARE VALUE SPACE. - 88 UT-NUMERIC-COMPARE VALUE 'N'. - 88 UT-COMPARE-88-LEVEL VALUE '8'. - 05 FILLER PIC X(01) VALUE SPACES. - 88 UT-COMPARE-PASSED VALUE 'Y'. - 88 UT-COMPARE-FAILED VALUE SPACES. - 05 UT-EXPECTED PIC X(256) VALUE SPACES. - 05 UT-ACTUAL PIC X(256) VALUE SPACES. - 05 UT-EXPECTED-NUMERIC-X. - 10 UT-EXPECTED-NUMERIC PIC S9(11)V9(7) - COMP-3 VALUE ZERO. - 05 UT-ACTUAL-NUMERIC-X. - 10 UT-ACTUAL-NUMERIC PIC S9(11)V9(7) - COMP-3 VALUE ZERO. - 05 FILLER PIC X VALUE 'F'. - 88 UT-EXPECTED-88-VALUE VALUE 'T', FALSE 'F'. - 05 FILLER PIC X VALUE 'F'. - 88 UT-ACTUAL-88-VALUE VALUE 'T', FALSE 'F'. - 05 UT-EXPECTED-ACCESSES PIC 9(18) VALUE ZERO. - 05 UT-ACTUAL-ACCESSES PIC 9(18) VALUE ZERO. - 05 UT-EXPECTED-ACCESSES-FMT PIC ZZZ,ZZZ,ZZZ,ZZZ,ZZZ,ZZ9. - 05 UT-ACTUAL-ACCESSES-FMT PIC ZZZ,ZZZ,ZZZ,ZZZ,ZZZ,ZZ9. - 05 UT-EXPECTED-ACCESSES-DISP PIC X(18). - 05 UT-ACTUAL-ACCESSES-DISP PIC X(18). - 05 UT-FAILED PIC X(11) VALUE "**** FAIL: ". - 05 UT-PASSED PIC X(11) VALUE " PASS: ". - 05 UT-TEST-SUITE-NAME PIC X(80) VALUE SPACES. - 05 UT-TEST-CASE-NAME PIC X(80) VALUE SPACES. - 05 UT-TEST-CASE-NUMBER PIC ZZ9. - 05 UT-RETCODE PIC 9(4) VALUE ZERO. - 05 UT-TEST-CASE-COUNT PIC 9(4) VALUE ZERO COMP. - 05 UT-NUMBER-PASSED PIC 9(4) VALUE ZERO COMP. - 05 UT-NUMBER-FAILED PIC 9(4) VALUE ZERO COMP. - 05 UT-EXPECTED-TRIM PIC S9(5) COMP-3 VALUE ZERO. - 05 UT-ACTUAL-TRIM PIC S9(5) COMP-3 VALUE ZERO. - 01 UT-MOCKS. - 05 FILLER PIC X(01) VALUE SPACES. - 88 UT-MOCK-FOUND VALUE 'Y'. - 88 UT-MOCK-NOT-FOUND VALUE SPACES. - 05 UT-MOCK-FIND-TYPE PIC X(04). - 88 UT-FIND-FILE-MOCK VALUE 'FILE'. - 88 UT-FIND-CALL-MOCK VALUE 'CALL'. - 88 UT-FIND-CICS-MOCK VALUE 'CICS'. - 88 UT-FIND-SQL-MOCK VALUE 'SQL'. - 88 UT-FIND-PARA-MOCK VALUE 'PARA'. - 05 UT-MOCK-FIND-FILENAME PIC X(31). - 05 UT-MOCK-FIND-PARA-NAME PIC X(31). - 05 UT-MOCK-FIND-OPERATION PIC X(04). - 05 UT-MOCK-FIND-CALL-TOKENS. - 10 UT-MOCK-FIND-CALL-TOKEN OCCURS 25 PIC X(31). - 05 UT-MOCK-FIND-CICS-KEYWORDS. - 10 UT-MOCK-FIND-CICS-KEYWORD OCCURS 25 PIC X(31). - 05 UT-MOCK-SET-RECORD PIC X(2048). - 05 UT-MOCK-SET-FILE-STATUS PIC X(02). - 05 UT-MOCK-MAX PIC 9(02) VALUE 10. - 05 UT-MOCK-COUNT PIC 9(02) VALUE ZERO. - 05 UT-MOCK-OPERATION PIC X(30). - 05 UT-MOCK OCCURS 20 INDEXED BY UT-MOCK-IX. - 10 UT-MOCK-TYPE PIC X(04). - 88 UT-MOCK-FILE VALUE 'FILE'. - 88 UT-MOCK-CALL VALUE 'CALL'. - 88 UT-MOCK-CICS VALUE 'CICS'. - 88 UT-MOCK-SQL VALUE 'SQL'. - 88 UT-MOCK-PARA VALUE 'PARA'. - 10 UT-MOCK-ACCESS-COUNT PIC 9(04) VALUE ZERO. - 10 UT-MOCK-RECORD PIC X(8192). - 10 UT-MOCK-DATA PIC X(806). - 10 UT-MOCK-FILE-DATA REDEFINES UT-MOCK-DATA. - 15 UT-MOCK-FILENAME PIC X(31). - 15 UT-MOCK-FILE-STATUS PIC X(02). - 15 FILLER PIC X(753). - 10 UT-MOCK-CALL-DATA REDEFINES UT-MOCK-DATA. - 15 UT-MOCK-CALL-TOKENS-KEY PIC X(806). - 10 UT-MOCK-CICS-DATA REDEFINES UT-MOCK-DATA. - 15 UT-MOCK-CICS-KEYWORDS-KEY PIC X(806). - 10 UT-MOCK-PARA-DATA REDEFINES UT-MOCK-DATA. - 15 UT-MOCK-PARA-NAME PIC X(31). - 15 FILLER PIC X(775). - 10 UT-MOCK-SQL-DATA REDEFINES UT-MOCK-DATA. - 15 FILLER PIC X(806). - 01 UT-FILES. - 05 UT-FILE-MAX PIC 9(02) VALUE 10. - 05 UT-FILE-COUNT PIC 9(02) VALUE ZERO. - 05 FILLER PIC X(01) VALUE SPACE. - 88 UT-FILENAME-MATCHED VALUE 'Y'. - 88 UT-FILENAME-NOT-MATCHED VALUE 'N'. - 05 UT-FILE-INFORMATION. - 10 FILLER OCCURS 10 INDEXED BY UT-FILE-IX. - 15 UT-INTERNAL-FILENAME PIC X(31). - 15 UT-RECORD-FIELD-NAME PIC X(31). - 15 UT-FILE-STATUS-FIELD-NAME PIC X(31). - - * CCHECKWS.CPY END - - 01 FILLER. - 05 WS-FIELD-1 PIC X(80). - 05 ws-Field-2 PIC X(80). - - - *EXEC SQL INCLUDE SQLCA END-EXEC. - *EXEC SQL INCLUDE TEXEM END-EXEC. - - * EXEC SQL DECLARE NAME-CUR CURSOR FOR SELECT FIRST_NAME, LAS - * T_NAME FROM TEXEM END-EXEC. - - 01 SQLCA. - 03 SQLCAID PIC X(8) VALUE "SQLCA ". - 03 SQLCABC USAGE BINARY-LONG VALUE 136. - 03 SQLCODE USAGE BINARY-LONG VALUE 0. - 03 SQLERRM. - 05 SQLERRML USAGE BINARY-SHORT. - 05 SQLERRMC PIC X(70). - 03 SQLERRP PIC X(8). - 03 SQLERRD USAGE BINARY-LONG OCCURS 6. - 03 SQLWARN. - 05 SQLWARN0 PIC X. - 05 SQLWARN1 PIC X. - 05 SQLWARN2 PIC X. - 05 SQLWARN3 PIC X. - 05 SQLWARN4 PIC X. - 05 SQLWARN5 PIC X. - 05 SQLWARN6 PIC X. - 05 SQLWARN7 PIC X. - 05 SQLWARN8 PIC X. - 05 SQLWARN9 PIC X. - 05 SQLWARN10 PIC X. - 05 SQLWARNA REDEFINES SQLWARN10 PIC X. - 03 SQLSTATE PIC X(5). - 03 FILLER PIC X(21). - 01 TEXEM. - 10 FIRST-NAME PIC X(10). - 10 LAST-NAME PIC X(10). - 10 TMS-CREA PIC X(26). - PROCEDURE DIVISION. - PERFORM UT-INITIALIZE - *============= "Tests of DB2 includes" =============* - DISPLAY "TESTSUITE:" - DISPLAY "Tests of DB2 includes" - MOVE "Tests of DB2 includes" - TO UT-TEST-SUITE-NAME - *-------- "DB2 Copybook added to PRG" - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-BEFORE-EACH - MOVE "DB2 Copybook added to PRG" - TO UT-TEST-CASE-NAME - PERFORM UT-INITIALIZE-MOCK-COUNT - MOVE "John" TO FIRST-NAME - MOVE "Doe" TO LAST-NAME - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE FIRST-NAME TO UT-ACTUAL - MOVE "John" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - ADD 1 TO UT-TEST-CASE-COUNT - SET UT-NORMAL-COMPARE TO TRUE - SET UT-ALPHANUMERIC-COMPARE TO TRUE - MOVE LAST-NAME TO UT-ACTUAL - MOVE "Doe" - TO UT-EXPECTED - SET UT-RELATION-EQ TO TRUE - PERFORM UT-CHECK-EXPECTATION - MOVE SPACES - TO UT-TEST-CASE-NAME - PERFORM UT-AFTER-EACH - * CCHECKRESULTPD.CPY - DISPLAY SPACE - MOVE UT-TEST-CASE-COUNT TO UT-TEST-CASE-NUMBER - DISPLAY UT-TEST-CASE-NUMBER ' TEST CASES WERE EXECUTED' - MOVE UT-NUMBER-PASSED TO UT-TEST-CASE-NUMBER - DISPLAY UT-TEST-CASE-NUMBER ' PASSED' - MOVE UT-NUMBER-FAILED TO UT-TEST-CASE-NUMBER - DISPLAY UT-TEST-CASE-NUMBER ' FAILED' - DISPLAY "=================================================" - MOVE UT-RETCODE TO RETURN-CODE - GOBACK. - - * CCHECKRESULTPD.CPY END - UT-BEFORE-EACH. - ***************************************************************** - *This is performed before each Test Case - ***************************************************************** - CONTINUE - . - - UT-AFTER-EACH. - ***************************************************************** - *This is performed after each Test Case - ***************************************************************** - CONTINUE - . - - UT-INITIALIZE-MOCK-COUNT. - ***************************************************************** - *Sets all global mock counters and expected count to 0 - ***************************************************************** - CONTINUE - . - - * CCHECKPARAGRAPHSPD.CPY - UT-CHECK-EXPECTATION. - ***************************************************************** - * COMPARE EXPECTED AND ACTUAL VALUES FOR EQUALITY. - ***************************************************************** - MOVE UT-TEST-CASE-COUNT TO UT-TEST-CASE-NUMBER - PERFORM UT-COMPARE - IF UT-COMPARE-PASSED - PERFORM UT-DISPLAY-PASSED - ELSE - PERFORM UT-DISPLAY-FAILED - END-IF - . - - UT-COMPARE. - SET UT-COMPARE-FAILED TO TRUE - IF UT-COMPARE-88-LEVEL - IF UT-COMPARE-88-LEVEL - IF (UT-ACTUAL-88-VALUE - AND UT-EXPECTED-88-VALUE) - OR (NOT UT-ACTUAL-88-VALUE - AND NOT UT-EXPECTED-88-VALUE) - SET UT-COMPARE-PASSED TO TRUE - END-IF - ELSE - IF UT-ACTUAL IS EQUAL TO UT-EXPECTED - SET UT-COMPARE-PASSED TO TRUE - END-IF - END-IF - ELSE - EVALUATE TRUE ALSO TRUE - WHEN UT-NUMERIC-COMPARE ALSO UT-RELATION-EQ - IF UT-ACTUAL-NUMERIC - EQUAL UT-EXPECTED-NUMERIC - SET UT-COMPARE-PASSED TO TRUE - END-IF - WHEN UT-NUMERIC-COMPARE ALSO UT-RELATION-GT - IF UT-ACTUAL-NUMERIC - GREATER UT-EXPECTED-NUMERIC - SET UT-COMPARE-PASSED TO TRUE - END-IF - WHEN UT-NUMERIC-COMPARE ALSO UT-RELATION-GE - IF UT-ACTUAL-NUMERIC - GREATER OR EQUAL UT-EXPECTED-NUMERIC - SET UT-COMPARE-PASSED TO TRUE - END-IF - WHEN UT-NUMERIC-COMPARE ALSO UT-RELATION-LT - IF UT-ACTUAL-NUMERIC - LESS UT-EXPECTED-NUMERIC - SET UT-COMPARE-PASSED TO TRUE - END-IF - WHEN UT-NUMERIC-COMPARE ALSO UT-RELATION-LE - IF UT-ACTUAL-NUMERIC - LESS OR EQUAL UT-EXPECTED-NUMERIC - SET UT-COMPARE-PASSED TO TRUE - END-IF - WHEN UT-ALPHANUMERIC-COMPARE ALSO UT-RELATION-EQ - IF UT-ACTUAL - EQUAL UT-EXPECTED - SET UT-COMPARE-PASSED TO TRUE - END-IF - WHEN UT-ALPHANUMERIC-COMPARE ALSO UT-RELATION-GT - IF UT-ACTUAL - GREATER UT-EXPECTED - SET UT-COMPARE-PASSED TO TRUE - END-IF - WHEN UT-ALPHANUMERIC-COMPARE ALSO UT-RELATION-GE - IF UT-ACTUAL - GREATER OR EQUAL UT-EXPECTED - SET UT-COMPARE-PASSED TO TRUE - END-IF - WHEN UT-ALPHANUMERIC-COMPARE ALSO UT-RELATION-LT - IF UT-ACTUAL - LESS UT-EXPECTED - SET UT-COMPARE-PASSED TO TRUE - END-IF - WHEN UT-ALPHANUMERIC-COMPARE ALSO UT-RELATION-LE - IF UT-ACTUAL - LESS OR EQUAL UT-EXPECTED - SET UT-COMPARE-PASSED TO TRUE - END-IF - WHEN OTHER - IF UT-ACTUAL EQUAL UT-EXPECTED - SET UT-COMPARE-PASSED TO TRUE - END-IF - END-EVALUATE - END-IF - PERFORM UT-REVERSE-RESULT - . - - UT-REVERSE-RESULT. - IF UT-REVERSE-COMPARE - IF UT-COMPARE-PASSED - SET UT-COMPARE-FAILED TO TRUE - ELSE - SET UT-COMPARE-PASSED TO TRUE - END-IF - END-IF - . - - UT-DISPLAY-PASSED. - ADD 1 TO UT-NUMBER-PASSED - DISPLAY UT-PASSED - UT-TEST-CASE-NUMBER '. ' - UT-TEST-CASE-NAME - . - - UT-DISPLAY-FAILED. - ADD 1 TO UT-NUMBER-FAILED - DISPLAY UT-FAILED - UT-TEST-CASE-NUMBER '. ' - UT-TEST-CASE-NAME - IF UT-NUMERIC-COMPARE - DISPLAY ' EXPECTED ' UT-EXPECTED-NUMERIC - DISPLAY ' WAS ' UT-ACTUAL-NUMERIC - ELSE - MOVE ZERO TO UT-EXPECTED-TRIM - INSPECT FUNCTION REVERSE(UT-EXPECTED) - TALLYING UT-EXPECTED-TRIM - FOR LEADING SPACES - SUBTRACT UT-EXPECTED-TRIM - FROM LENGTH OF UT-EXPECTED - GIVING UT-EXPECTED-TRIM - MOVE ZERO TO UT-ACTUAL-TRIM - INSPECT FUNCTION REVERSE(UT-ACTUAL) - TALLYING UT-ACTUAL-TRIM - FOR LEADING SPACES - SUBTRACT UT-ACTUAL-TRIM - FROM LENGTH OF UT-ACTUAL - GIVING UT-ACTUAL-TRIM - - DISPLAY ' EXPECTED <' - UT-EXPECTED(1:UT-EXPECTED-TRIM) - '>, WAS <' UT-ACTUAL(1:UT-ACTUAL-TRIM) '>' - END-IF - MOVE 4 TO UT-RETCODE - . - - UT-ASSERT-ACCESSES. - ***************************************************************** - * COMPARE THE NUMBER OF ACCESSES TO A MOCK WITH THE EXPECTED - * NUMBER OF ACCESSES. - ***************************************************************** - MOVE UT-TEST-CASE-COUNT TO UT-TEST-CASE-NUMBER - MOVE UT-ACTUAL-ACCESSES TO UT-ACTUAL-ACCESSES-FMT - MOVE UT-EXPECTED-ACCESSES TO UT-EXPECTED-ACCESSES-FMT - IF UT-EXPECTED-ACCESSES IS EQUAL TO 1 - MOVE SPACES TO UT-LABEL-EXPECTED-ACCESS-PL - ELSE - MOVE UT-CONST-ES TO UT-LABEL-EXPECTED-ACCESS-PL - END-IF - - SET UT-VERIFY-FAILED TO TRUE - EVALUATE TRUE - WHEN UT-VERIFY-AT-LEAST - MOVE UT-VERIFY-AT-LEAST-STRING TO - UT-LABEL-VERIFY-COMPARE - IF UT-ACTUAL-ACCESSES IS GREATER THAN OR EQUAL TO - UT-EXPECTED-ACCESSES - SET UT-VERIFY-PASSED TO TRUE - END-IF - WHEN UT-VERIFY-NO-MORE-THAN - MOVE UT-VERIFY-NO-MORE-THAN-STRING TO - UT-LABEL-VERIFY-COMPARE - IF UT-ACTUAL-ACCESSES IS LESS THAN OR EQUAL TO - UT-EXPECTED-ACCESSES - SET UT-VERIFY-PASSED TO TRUE - END-IF - WHEN OTHER - MOVE UT-VERIFY-EXACT-STRING TO - UT-LABEL-VERIFY-COMPARE - IF UT-ACTUAL-ACCESSES IS EQUAL TO - UT-EXPECTED-ACCESSES - SET UT-VERIFY-PASSED TO TRUE - END-IF - END-EVALUATE - - MOVE FUNCTION TRIM(UT-EXPECTED-ACCESSES-FMT) - TO UT-EXPECTED-ACCESSES-DISP - MOVE FUNCTION TRIM(UT-ACTUAL-ACCESSES-FMT) - TO UT-ACTUAL-ACCESSES-DISP - - - - IF UT-VERIFY-PASSED - ADD 1 TO UT-NUMBER-PASSED - STRING - UT-PASSED DELIMITED BY SIZE - UT-TEST-CASE-NUMBER '. ' DELIMITED BY SIZE - 'VERIFY ' UT-LABEL-VERIFY-COMPARE DELIMITED BY ' ' - ' ' DELIMITED BY SIZE - UT-EXPECTED-ACCESSES-DISP DELIMITED BY SPACE - ' ' DELIMITED BY SIZE - UT-LABEL-EXPECTED-ACCESS ' ' DELIMITED BY SIZE - 'TO ' UT-MOCK-OPERATION DELIMITED BY SIZE - INTO UT-DISPLAY-MESSAGE - END-STRING - DISPLAY UT-DISPLAY-MESSAGE - - ELSE - ADD 1 TO UT-NUMBER-FAILED - MOVE SPACES TO UT-DISPLAY-MESSAGE - STRING - UT-FAILED DELIMITED BY SIZE - UT-TEST-CASE-NUMBER DELIMITED BY SIZE - '. VERIFY ACCESSES TO ' DELIMITED BY SIZE - UT-MOCK-OPERATION DELIMITED BY SIZE - INTO UT-DISPLAY-MESSAGE - END-STRING - DISPLAY UT-DISPLAY-MESSAGE - MOVE SPACES TO UT-DISPLAY-MESSAGE - STRING - ' EXPECTED ' DELIMITED BY SIZE - UT-LABEL-VERIFY-COMPARE DELIMITED BY ' ' - ' ' DELIMITED BY SIZE - UT-EXPECTED-ACCESSES-DISP DELIMITED BY SPACE - ' ' DELIMITED BY SIZE - UT-LABEL-EXPECTED-ACCESS DELIMITED BY SPACE - ', WAS ' DELIMITED BY SIZE - UT-ACTUAL-ACCESSES-DISP DELIMITED BY SIZE - INTO UT-DISPLAY-MESSAGE - END-STRING - DISPLAY UT-DISPLAY-MESSAGE - MOVE 4 TO UT-RETCODE - END-IF - . - - UT-LOOKUP-FILE. - ***************************************************************** - * LOOK UP A FILE SPECIFICATION. - ***************************************************************** - PERFORM VARYING UT-FILE-IX FROM 1 BY 1 - UNTIL UT-FILE-IX GREATER UT-FILE-MAX - OR UT-INTERNAL-FILENAME(UT-FILE-IX) - EQUAL UT-MOCK-FIND-FILENAME - CONTINUE - END-PERFORM - SET UT-FILE-IX DOWN BY 1 - . - UT-INITIALIZE. - MOVE SPACES TO UT-FILE-INFORMATION - - . - UT-END. - - * CCHECKPARAGRAPHSPD.CPY END - 0000-MAIN. - - PERFORM 1000-SELECT - PERFORM 2000-OPEN-CURSOR. - PERFORM 3000-FETCH-SQL - UNTIL SQLCODE = 100. - - PERFORM 4000-CLOSE-CURSOR. - GOBACK. - - 1000-SELECT. - * EXEC SQL - * SELECT FIRST_NAME, - * LAST_NAME, - * TMS_CREA - * INTO - * :FIRST-NAME, - * :LAST-NAME, - * :TMS-CREA - * FROM TEXEM - * END-EXEC. - CONTINUE - . - EVALUATE SQLCODE - WHEN ZEROES - MOVE 'GOOD JOB' TO WS-FIELD-1 - - WHEN -100 - MOVE 'NOT FOUND' TO WS-FIELD-1 - - WHEN OTHER - MOVE 'THIS IS BAD' TO WS-FIELD-1 - END-EVALUATE. - - - 2000-OPEN-CURSOR. - * EXEC SQL - * OPEN NAME-CUR - * END-EXEC. - CONTINUE - . - EVALUATE SQLCODE - WHEN ZEROES - MOVE 'CURS OPENED' TO WS-FIELD-1 - - WHEN OTHER - MOVE 'THIS IS BAD' TO WS-FIELD-1 - END-EVALUATE. - - 3000-FETCH-SQL. - * EXEC SQL - * CLOSE NAME-CUR - * END-EXEC. - CONTINUE - . - EVALUATE SQLCODE - WHEN ZEROES - MOVE 'GOOD JOB' TO WS-FIELD-1 - - WHEN -100 - MOVE 'NOT FOUND' TO WS-FIELD-1 - - WHEN OTHER - MOVE 'THIS IS BAD' TO WS-FIELD-1 - END-EVALUATE. - - 4000-CLOSE-CURSOR. - * EXEC SQL - * CLOSE NAME-CUR - * END-EXEC. - CONTINUE - . - EVALUATE SQLCODE - WHEN ZEROES - MOVE 'CURS CLOSED' TO WS-FIELD-1 - - WHEN OTHER - MOVE 'THIS IS BAD' TO WS-FIELD-1 - END-EVALUATE. diff --git a/approval-test-expected.txt b/approval-test-expected.txt deleted file mode 100644 index e9684a2f..00000000 --- a/approval-test-expected.txt +++ /dev/null @@ -1,272 +0,0 @@ -TESTSUITE: -Verify Cobol Check handles numeric relations properly - PASS: 1. Equal sign with literal compare -**** FAIL: 2. Equal sign with literal compare (should fail) - EXPECTED +00000000025.7500000 - WAS +00000000025.7400000 - PASS: 3. Not equal sign with literal compare -**** FAIL: 4. Not equal sign with literal compare (should fail) - EXPECTED +00000000025.7400000 - WAS +00000000025.7400000 - PASS: 5. Not-equal sign with literal compare -**** FAIL: 6. Not-equal sign with literal compare (should fail) - EXPECTED +00000000013.6000000 - WAS +00000000013.6000000 - PASS: 7. Not not-equal sign with literal compare -**** FAIL: 8. Not not-equal sign with literal compare (should fail) - EXPECTED +00000000013.6000000 - WAS +00000000013.7000000 - PASS: 9. Equal sign with ield compare -**** FAIL: 10. Equal sign with field compare (should fail) - EXPECTED +00000000025.7500000 - WAS +00000000025.7400000 - PASS: 11. Not equal sign with field compare -**** FAIL: 12. Not equal sign with field compare (should fail) - EXPECTED +00000000025.7400000 - WAS +00000000025.7400000 - PASS: 13. Not-equal sign with field compare -**** FAIL: 14. Not-equal sign with field compare (should fail) - EXPECTED +00000000025.7400000 - WAS +00000000025.7400000 - PASS: 15. Not not-equal sign with field compare -**** FAIL: 16. Not not-equal sign with field compare (should fail) - EXPECTED +00000000025.7400000 - WAS +00000000025.7500000 - PASS: 17. Less-than sign with literal compare -**** FAIL: 18. Less-than sign with literal compare (should fail) - EXPECTED +00000000018.0660000 - WAS +00000000018.0670000 - PASS: 19. Not less-than sign with literal compare -**** FAIL: 20. Not less-than sign with literal compare (should fail) - EXPECTED +00000000018.0670000 - WAS +00000000018.0660000 - PASS: 21. Less-than sign with field compare -**** FAIL: 22. Less-than sign with field compare (should fail) - EXPECTED +00000000416.0720000 - WAS +00000000416.0720000 - PASS: 23. Not less-than sign with field compare -**** FAIL: 24. Not less-than sign with field compare (should fail) - EXPECTED +00000000416.0720000 - WAS +00000000416.0710000 - PASS: 25. Greater-than sign with literal compare -**** FAIL: 26. Greater-than sign with literal compare (should fail) - EXPECTED +00000000010.0000000 - WAS +00000000009.8050000 - PASS: 27. Not greater-than sign with literal compare -**** FAIL: 28. Not greater-than sign with literal compare (should fail) - EXPECTED +00000000107.7010000 - WAS +00000000107.7020000 - PASS: 29. Greater-than sign with field compare -**** FAIL: 30. Greater-than sign with field compare (should fail) - EXPECTED +00000001766.0314400 - WAS +00000001766.0314300 - PASS: 31. Not greater-than sign with field to field compare -**** FAIL: 32. Not greater-than sign with field compare (should fail) - EXPECTED +00000001766.0314400 - WAS +00000001766.0314500 - PASS: 33. Greater-than-or-equal-to sign with literal compare when greater - PASS: 34. Greater-than-or-equal-to sign with literal compare when equal -**** FAIL: 35. Greater-than-or-equal-to sign with literal compare (should fail) - EXPECTED +00000000010.0000000 - WAS +00000000009.8050000 - PASS: 36. Not greater-than-or-equal-to sign with literal compare when less -**** FAIL: 37. Not greater-than-or-equal-to sign with literal compare when equal (should fail) - EXPECTED +00000000018.0670000 - WAS +00000000018.0670000 -**** FAIL: 38. Greater-than-or-equal-to sign with literal compare when greater (should fail) - EXPECTED +00000000013.4400000 - WAS +00000000013.4500000 - PASS: 39. Greater-than-or-equal-to-sign with field compare when equal - PASS: 40. Greater-than-or-equal-to-sign with field compare when greater -**** FAIL: 41. Greater-than-or-equal-to-sign with field compare when less (should fail) - EXPECTED +00000000475.0620000 - WAS +00000000475.0610000 - PASS: 42. Not greater-than-or-equal-to-sign with field compare when less -**** FAIL: 43. Not greater-than-or-equal-to-sign with field compare when equal (should fail) - EXPECTED +00000000475.0620000 - WAS +00000000475.0620000 -**** FAIL: 44. Not greater-than-or-equal-to-sign with field compare when greater (should fail) - EXPECTED +00000000475.0620000 - WAS +00000000475.0630000 - PASS: 45. Less-than-or-equal-to-sign with field compare when equal - PASS: 46. Less-than-or-equal-to-sign with field compare when less -**** FAIL: 47. Less-than-or-equal-to-sign with field compare when greater (should fail) - EXPECTED +00000000475.0620000 - WAS +00000000475.0630000 - PASS: 48. Not less-than-or-equal-to-sign with field compare when greater -**** FAIL: 49. Not greater-than-or-equal-to-sign with field compare when equal (should fail) - EXPECTED +00000000475.0620000 - WAS +00000000475.0620000 -**** FAIL: 50. Not greater-than-or-equal-to-sign with field compare when less (should fail) - EXPECTED +00000000475.0630000 - WAS +00000000475.0620000 - PASS: 51. Display Numeric field equals literal - PASS: 52. Display Numeric field equals literal - PASS: 53. Variable must be ZERO - PASS: 54. Variable must be ZEROS - PASS: 55. Variable must be ZEROES - PASS: 56. Variable must be NUMERIC 123 - PASS: 57. Variable must be NUMERIC -123 - PASS: 58. Variable must be 123 - PASS: 59. Variable must be -123 - - 59 TEST CASES WERE EXECUTED - 34 PASSED - 25 FAILED -================================================= -TESTSUITE: -Tests of alphanumeric expectations - PASS: 1. Equality with an alphanumeric literal using TO BE - PASS: 2. Equality with an alphanumeric literal using TO EQUAL - PASS: 3. Equality with an alphanumeric literal using '=' - PASS: 4. Equality with an alphanumeric literal and reference modification - PASS: 5. Non-equality with an alphanumeric literal using TO BE - PASS: 6. Non-equality with an alphanumeric literal using TO EQUAL - PASS: 7. Non-equality with an alphanumeric literal using '!=' - PASS: 8. Non-equality with an alphanumeric literal and reference modification - PASS: 9. Greater-than sign with an alphanumeric literal - PASS: 10. Less-than sign with an alphanumeric literal - PASS: 11. Not greater-than sign with an alphanumeric literal - PASS: 12. Not less-than sign with an alphanumeric literal - PASS: 13. Display numeric - PASS: 14. Variable must be SPACE - PASS: 15. Variable must be SPACES - - 15 TEST CASES WERE EXECUTED - 15 PASSED - 0 FAILED -================================================= -TESTSUITE: -Greeting includes the user name when it is provided -**** FAIL: 1. When message type is greeting it returns Hello, James! - EXPECTED , WAS -**** FAIL: 2. When message type is farewell it returns Goodbye, James! - EXPECTED , WAS - PASS: 3. User name for greeting and farewell are consistent -TESTSUITE: -Greeting returns the appropriate message based on message type -**** FAIL: 4. When message type is greeting it returns 'Hello, World!' - EXPECTED , WAS - PASS: 5. try numerical compare -**** FAIL: 6. try 88 level compare - EXPECTED , WAS -**** FAIL: 7. When message type is farewell it returns See you later, alligator! - EXPECTED , WAS -**** FAIL: 8. Message type greeting is not true - EXPECTED , WAS - - 8 TEST CASES WERE EXECUTED - 2 PASSED - 6 FAILED -================================================= - -TESTSUITE: -Before and after tests 1 - PASS: 1. Before sets value - PASS: 2. After sets value - PASS: 3. Before happens before Testcase - PASS: 4. After happens after Testcase (part 1) - PASS: 5. After happens after Testcase (part 2) -TESTSUITE: -Before and after tests 2 - PASS: 6. VERIFY EXACT 0 ACCESSES TO SECTION 000-START - PASS: 7. VERIFY EXACT 0 ACCESSES TO SECTION 100-WELCOME - PASS: 8. Only global mocks apply in before/after (part 1) - PASS: 9. Only global mocks apply in before/after (part 1) - PASS: 10. Only global mocks apply in before/after (part 1) - PASS: 11. Only global mocks apply in before/after (part 2) - PASS: 12. Only global mocks apply in before/after (part 2) - PASS: 13. Only global mocks apply in before/after (part 2) - PASS: 14. Only global mocks apply in before/after (part 3) - PASS: 15. Only global mocks apply in before/after (part 3) - PASS: 16. Only global mocks apply in before/after (part 3) -TESTSUITE: -Before and after tests 3 - PASS: 17. Before proceeds after from last testcase (part 1) - PASS: 18. Before proceeds after from last testcase (part 2) -TESTSUITE: -General tests - PASS: 19. Welcome section performs as intended - PASS: 20. Welcome section performs as intended - PASS: 21. Goodbye section performs as intended - PASS: 22. Goodbye section performs as intended - PASS: 23. Change-1 changes hello to bye - PASS: 24. Change-1 changes hello to bye - PASS: 25. Change-1 changes bye to hello - PASS: 26. Change-1 changes bye to hello - PASS: 27. Change-2 changes hi to see you - PASS: 28. Change-2 changes hi to see you - PASS: 29. Change-2 changes see you to hi - PASS: 30. Change-2 changes see you to hi - PASS: 31. Switches values - PASS: 32. Switches values -TESTSUITE: -Mock Call statements test - PASS: 33. Simple call mock works - PASS: 34. Simple call mock works - PASS: 35. VERIFY EXACT 1 ACCESS TO CALL 'PROG1' - PASS: 36. Simple global call mock works - PASS: 37. Simple global call mock works - PASS: 38. VERIFY EXACT 1 ACCESS TO CALL 'PROG1' - PASS: 39. Call mock with argument works - PASS: 40. Call mock with argument works - PASS: 41. VERIFY EXACT 1 ACCESS TO CALL VALUE-2 - PASS: 42. Call mock with field and no arguments work - PASS: 43. Call mock with field and no arguments work - PASS: 44. VERIFY EXACT 1 ACCESS TO CALL VALUE-2 - PASS: 45. Call mock with content reference for arguments work - PASS: 46. Call mock with content reference for arguments work - PASS: 47. Call mock with content reference for arguments work - PASS: 48. VERIFY EXACT 2 ACCESSES TO CALL 'PROG3' - PASS: 49. Paragraph mock is called and call mock is ignored - PASS: 50. Paragraph mock is called and call mock is ignored - PASS: 51. Paragraph mock is called and call mock is ignored - PASS: 52. VERIFY EXACT 1 ACCESS TO PARAGRAPH 800-MAKE-CALL - PASS: 53. VERIFY EXACT 0 ACCESSES TO CALL 'PROG3' -**** FAIL: 54. Global call mock is not overwritten by local call mock (Should fail) - EXPECTED , WAS -TESTSUITE: -Mock Sections And Paragraphs - PASS: 55. Global mock behaves as intended - PASS: 56. Global mock behaves as intended - PASS: 57. VERIFY EXACT 1 ACCESS TO SECTION 000-START - PASS: 58. VERIFY EXACT 0 ACCESSES TO PARAGRAPH 300-CHANGE-1 - PASS: 59. Local mock overwrites global mock - PASS: 60. Local mock overwrites global mock - PASS: 61. VERIFY AT LEAST 2 ACCESSES TO SECTION 000-START -**** FAIL: 62. VERIFY ACCESSES TO SECTION 000-START - EXPECTED EXACT 5 ACCESSES, WAS 2 - PASS: 63. Multiple local mocks behaves as intended (First Verify should fail) - PASS: 64. VERIFY NO MORE THAN 10 ACCESSES TO SECTION 100-WELCOME - PASS: 65. VERIFY EXACT 0 ACCESSES TO PARAGRAPH 500-SWITCH - PASS: 66. Multiple local mocks behaves as intended (First Verify should fail) - PASS: 67. Empty local mock makes section do nothing - PASS: 68. Empty local mock makes section do nothing - PASS: 69. VERIFY EXACT 1 ACCESS TO PARAGRAPH 500-SWITCH - PASS: 70. Local and global mocks can be used together - PASS: 71. Local and global mocks can be used together - PASS: 72. If no local or global mock run source code - PASS: 73. If no local or global mock run source code - PASS: 74. Global paragraph mock works - PASS: 75. Global paragraph mock works - PASS: 76. Mock with EXIT SECTION in source works - PASS: 77. Mock one-liner with end mock on next line - PASS: 78. Mock one-liner with content - PASS: 79. Mock content with end-mock on the same line - PASS: 80. Mock content on multiple lines, with end-mock on the same line as some content - PASS: 81. Mock content on multiple lines, with end-mock on the same line as some content - - 81 TEST CASES WERE EXECUTED - 79 PASSED - 2 FAILED -================================================= -TESTSUITE: -Verify Cobol Check handles decimal is comma properly - PASS: 1. simple expect for number - PASS: 2. simple expect for number - PASS: 3. VERIFY EXACT 1 ACCESS TO PARAGRAPH 100-ASSIGN - - 3 TEST CASES WERE EXECUTED - 3 PASSED - 0 FAILED -================================================= diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/CopybookExpander.java b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/CopybookExpander.java index b68e7ff4..c574615e 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/CopybookExpander.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/CopybookExpander.java @@ -20,25 +20,18 @@ /** * Expand copybooks referenced by the code under test. * - * In the general use case, COPY statements are left alone and the compiler - * handles expansion. + * In the general use case, COPY statements are left alone and the compiler handles expansion. * - * Cobol-check runs as a precompiler and does not "see" the expanded Cobol - * source code. + * Cobol-check runs as a precompiler and does not "see" the expanded Cobol source code. * There are two cases in which cobol-check may need to "see" the expanded code. * - * 1. If source statements pertinent to a mock are contained in copybooks, - * cobol-check needs to + * 1. If source statements pertinent to a mock are contained in copybooks, cobol-check needs to * be able to comment-out those statements in the merged test program. * - * 2. IBM z/OS compilers support nested COPY statements with the REPLACING - * option. Off-platform - * compilers written by others do not support this, as it is an IBM extension to - * Cobol. When the - * code under test uses this feature, and cobol-check is running on a platform - * other than z/OS, - * cobol-check needs to expand the copybooks recursively during preprocessing so - * the compilation will work. + * 2. IBM z/OS compilers support nested COPY statements with the REPLACING option. Off-platform + * compilers written by others do not support this, as it is an IBM extension to Cobol. When the + * code under test uses this feature, and cobol-check is running on a platform other than z/OS, + * cobol-check needs to expand the copybooks recursively during preprocessing so the compilation will work. * * @author Dave Nicolette (neopragma) * @since 14 diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java index 0dc2d515..354a08b4 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java @@ -32,12 +32,12 @@ public InterpreterController(BufferedReader sourceReader) { if (sourceReader == null) { throw new PossibleInternalLogicErrorException( Messages.get("ERR001", "cobolSourceIn", "Generator.runSuite()")); - } - reader = new CobolReader(sourceReader); - lineRepository = new LineRepository(); - numericFields = new NumericFields(); - tokenExtractor = new StringTokenizerExtractor(); - currentDataStructure = new TreeMap<>(); + } + reader = new CobolReader(sourceReader); + lineRepository = new LineRepository(); + numericFields = new NumericFields(); + tokenExtractor = new StringTokenizerExtractor(); + currentDataStructure = new TreeMap<>(); } // Getters for lists of specific source lines @@ -185,23 +185,20 @@ else if (Interpreter.endsInPeriod(reader.getCurrentLine())) { } /** - * Interprets the next line from the source file. Based on the line, the - * following values + * Interprets the next line from the source file. Based on the line, the following values * will be updated: * - Current line * - Current tokens * - previous line * The following values can be updated, based on the line: * - Current statement (only if multiline statement was read) - * - The state of the reader (flags that shows what part of the program we are - * reading) + * - The state of the reader (flags that shows what part of the program we are reading) * - List of FILE SECTION statements * - List of FILE CONTROL statements * - List mapping file identifiers to statuses * - List of copy tokens * - Numeric fields - * If the line is part of a longer statement, the reader might read multiple - * lines. + * If the line is part of a longer statement, the reader might read multiple lines. * * @return The line that was read as a string */ @@ -247,8 +244,7 @@ public void closeReader() { * Updates dependencies of the interpreter. * The following values can be updated, based on the given line: * - Current statement (only if multiline statement was read) - * - The state of the reader (flags that shows what part of the program we are - * reading) + * - The state of the reader (flags that shows what part of the program we are reading) * - List of FILE SECTION statements * - List of FILE CONTROL statements * - List mapping file identifiers to statuses @@ -329,10 +325,8 @@ private void updatePossibleMock(CobolLine line) throws IOException { if (possibleMockIdentifier != null && periodShouldBeOnThisLine && !Interpreter.endsInPeriod(line) && Interpreter.containsOnlyPeriod(nextLine)) { - // We might generate code after the current line, thus if the period is on the - // next line, - // we append it to this line. This prevents us generating code in the wrong - // place. + // We might generate code after the current line, thus if the period is on the next line, + // we append it to this line. This prevents us generating code in the wrong place. reader.appendNextMeaningfulLineToCurrentLine(); } } @@ -362,13 +356,9 @@ private void tryReadBatchFileIOStatement() { } /** - * If the current line is a numeric field, it will be added to the list of - * numeric fields. - * We need to save field names of numeric data items in the DATA DIVISION in - * case a test case - * references them. There's no way to distinguish numeric fields while reading - * the PROCEDURE - * DIVISION. + * If the current line is a numeric field, it will be added to the list of numeric fields. + * We need to save field names of numeric data items in the DATA DIVISION in case a test case + * references them. There's no way to distinguish numeric fields while reading the PROCEDURE DIVISION. */ private void updateNumericFields(CobolLine line) { if (line.tokensSize() > 1) { @@ -414,18 +404,13 @@ private String generateVariableNameBasedOnDataStructure(TreeMap } /** - * Updates the line repository with the given line, if it might have further use - * when testing. - * Lines ahead of the current one, might be peeked or even read, if the current - * statement spans - * multiple lines. If the line fits any of below it will be saved in the - * repository: + * Updates the line repository with the given line, if it might have further use when testing. + * Lines ahead of the current one, might be peeked or even read, if the current statement spans + * multiple lines. If the line fits any of below it will be saved in the repository: * - It is a line read under FILE CONTROL - * - It has a SELECT token. File identifier and corresponding FILE STATUS will - * be saved + * - It has a SELECT token. File identifier and corresponding FILE STATUS will be saved * - It contains a copy token - * - It is a file section statement (file section statements from referenced - * copybooks are also included) + * - It is a file section statement (file section statements from referenced copybooks are also included) * - It has an SQL statement and within le WORKING SECTION * * @param line - current source line @@ -462,8 +447,7 @@ private void updateLineRepository(CobolLine line) throws IOException { } /** - * If the given line contains a SELECT token, the file identifier will be added, - * waiting for + * If the given line contains a SELECT token, the file identifier will be added, waiting for * a mapping to a corresponding file status. * * @param line - current source line @@ -484,8 +468,7 @@ private void updateLineRepoBySelectToken(CobolLine line) { } /** - * If the given line contains a file status token, it will be added to a map to - * a + * If the given line contains a file status token, it will be added to a map to a * corresponding file identifier. * * @param line - current source line diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Keywords.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Keywords.java index 31e46b2a..588f5493 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Keywords.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Keywords.java @@ -20,649 +20,936 @@ public class Keywords { static { keywordInfo = new HashMap<>(); //--------------------------------TESTSUITE - keywordInfo.put(Constants.TESTSUITE_KEYWORD, - new Keyword(Constants.TESTSUITE_KEYWORD, - Arrays.asList(Constants.ALPHANUMERIC_LITERAL_KEYWORD), - KeywordAction.TESTSUITE_NAME)); + keywordInfo.put( + Constants.TESTSUITE_KEYWORD, + new Keyword( + Constants.TESTSUITE_KEYWORD, + Arrays.asList(Constants.ALPHANUMERIC_LITERAL_KEYWORD), + KeywordAction.TESTSUITE_NAME + ) + ); //--------------------------------TESTCASE - keywordInfo.put(Constants.TESTCASE_KEYWORD, - new Keyword(Constants.TESTCASE_KEYWORD, - Arrays.asList(Constants.ALPHANUMERIC_LITERAL_KEYWORD), - KeywordAction.NEW_TESTCASE)); + keywordInfo.put( + Constants.TESTCASE_KEYWORD, + new Keyword(Constants.TESTCASE_KEYWORD, + Arrays.asList(Constants.ALPHANUMERIC_LITERAL_KEYWORD), + KeywordAction.NEW_TESTCASE + ) + ); //--------------------------------EXPECT keywordInfo.put(Constants.EXPECT_KEYWORD, - new Keyword(Constants.EXPECT_KEYWORD, - Arrays.asList(Constants.FIELDNAME_KEYWORD), - new HashMap>() {{ - put(Constants.EXPECT_KEYWORD, Arrays.asList( - Constants.FIELDNAME_KEYWORD) - ); - }}, - KeywordAction.ACTUAL_FIELDNAME)); + new Keyword(Constants.EXPECT_KEYWORD, + Arrays.asList(Constants.FIELDNAME_KEYWORD), + new HashMap>() {{ + put( + Constants.EXPECT_KEYWORD, + Arrays.asList(Constants.FIELDNAME_KEYWORD) + ); + }}, + KeywordAction.ACTUAL_FIELDNAME + ) + ); //--------------------------------FIELD NAME - keywordInfo.put(Constants.FIELDNAME_KEYWORD, - new Keyword(Constants.FIELDNAME_KEYWORD, - Arrays.asList(Constants.NOT_KEYWORD, - Constants.EQUAL_SIGN_KEYWORD, - Constants.GREATER_THAN_SIGN_KEYWORD, - Constants.LESS_THAN_SIGN_KEYWORD, - Constants.GREATER_THAN_EQUAL_TO_SIGN_KEYWORD, - Constants.LESS_THAN_EQUAL_TO_SIGN_KEYWORD, - Constants.COBOL_TOKEN, - Constants.PARENTHESIS_ENCLOSED_KEYWORD, - Constants.FIELDNAME_KEYWORD, - Constants.BY_REFERENCE_TOKEN, - Constants.BY_CONTENT_TOKEN, - Constants.BY_VALUE_TOKEN, - Constants.USING_TOKEN, - Constants.QUALIFIED_FIELD_NAME), - new HashMap>() {{ - put(Constants.MOCK_KEYWORD, Arrays.asList( - Constants.ENDMOCK_KEYWORD, - Constants.FIELDNAME_KEYWORD, - Constants.BY_REFERENCE_TOKEN, - Constants.BY_CONTENT_TOKEN, - Constants.BY_VALUE_TOKEN, - Constants.USING_TOKEN) - ); - put(Constants.EXPECT_KEYWORD, Arrays.asList( - Constants.TO_BE_KEYWORD, - Constants.EQUAL_SIGN_KEYWORD, - Constants.TO_EQUAL_KEYWORD, - Constants.NOT_KEYWORD, - Constants.LESS_THAN_SIGN_KEYWORD, - Constants.NOT_EQUAL_SIGN_KEYWORD, - Constants.LESS_THAN_SIGN_KEYWORD, - Constants.EQUAL_SIGN_KEYWORD, - Constants.GREATER_THAN_SIGN_KEYWORD, - Constants.GREATER_THAN_EQUAL_TO_SIGN_KEYWORD, - Constants.LESS_THAN_EQUAL_TO_SIGN_KEYWORD, - Constants.ALPHANUMERIC_LITERAL_KEYWORD, - Constants.FIELDNAME_KEYWORD, - Constants.QUALIFIED_FIELD_NAME, - Constants.PARENTHESIS_ENCLOSED_KEYWORD) - ); - put(Constants.VERIFY_KEYWORD, Arrays.asList( - Constants.FIELDNAME_KEYWORD, - Constants.BY_REFERENCE_TOKEN, - Constants.BY_CONTENT_TOKEN, - Constants.BY_VALUE_TOKEN, - Constants.USING_TOKEN, - Constants.HAPPENED_KEYWORD, - Constants.NEVER_HAPPENED_KEYWORD) - ); - }}, - KeywordAction.FIELDNAME)); + keywordInfo.put( + Constants.FIELDNAME_KEYWORD, + new Keyword( + Constants.FIELDNAME_KEYWORD, + Arrays.asList( + Constants.NOT_KEYWORD, + Constants.EQUAL_SIGN_KEYWORD, + Constants.GREATER_THAN_SIGN_KEYWORD, + Constants.LESS_THAN_SIGN_KEYWORD, + Constants.GREATER_THAN_EQUAL_TO_SIGN_KEYWORD, + Constants.LESS_THAN_EQUAL_TO_SIGN_KEYWORD, + Constants.COBOL_TOKEN, + Constants.PARENTHESIS_ENCLOSED_KEYWORD, + Constants.FIELDNAME_KEYWORD, + Constants.BY_REFERENCE_TOKEN, + Constants.BY_CONTENT_TOKEN, + Constants.BY_VALUE_TOKEN, + Constants.USING_TOKEN, + Constants.QUALIFIED_FIELD_NAME + ), + new HashMap>() {{ + put( + Constants.MOCK_KEYWORD, + Arrays.asList( + Constants.ENDMOCK_KEYWORD, + Constants.FIELDNAME_KEYWORD, + Constants.BY_REFERENCE_TOKEN, + Constants.BY_CONTENT_TOKEN, + Constants.BY_VALUE_TOKEN, + Constants.USING_TOKEN + ) + ); + put( + Constants.EXPECT_KEYWORD, + Arrays.asList( + Constants.TO_BE_KEYWORD, + Constants.EQUAL_SIGN_KEYWORD, + Constants.TO_EQUAL_KEYWORD, + Constants.NOT_KEYWORD, + Constants.LESS_THAN_SIGN_KEYWORD, + Constants.NOT_EQUAL_SIGN_KEYWORD, + Constants.LESS_THAN_SIGN_KEYWORD, + Constants.EQUAL_SIGN_KEYWORD, + Constants.GREATER_THAN_SIGN_KEYWORD, + Constants.GREATER_THAN_EQUAL_TO_SIGN_KEYWORD, + Constants.LESS_THAN_EQUAL_TO_SIGN_KEYWORD, + Constants.ALPHANUMERIC_LITERAL_KEYWORD, + Constants.FIELDNAME_KEYWORD, + Constants.QUALIFIED_FIELD_NAME, + Constants.PARENTHESIS_ENCLOSED_KEYWORD + ) + ); + put( + Constants.VERIFY_KEYWORD, + Arrays.asList( + Constants.FIELDNAME_KEYWORD, + Constants.BY_REFERENCE_TOKEN, + Constants.BY_CONTENT_TOKEN, + Constants.BY_VALUE_TOKEN, + Constants.USING_TOKEN, + Constants.HAPPENED_KEYWORD, + Constants.NEVER_HAPPENED_KEYWORD + ) + ); + }}, + KeywordAction.FIELDNAME + ) + ); //--------------------------------NOT keywordInfo.put(Constants.NOT_KEYWORD, - new Keyword(Constants.NOT_KEYWORD, - Arrays.asList(Constants.EQUAL_SIGN_KEYWORD, - Constants.GREATER_THAN_SIGN_KEYWORD, - Constants.LESS_THAN_SIGN_KEYWORD, - Constants.GREATER_THAN_EQUAL_TO_SIGN_KEYWORD, - Constants.LESS_THAN_EQUAL_TO_SIGN_KEYWORD), - new HashMap>() {{ - put(Constants.EXPECT_KEYWORD, Arrays.asList( - Constants.TO_BE_KEYWORD, - Constants.TO_EQUAL_KEYWORD, - Constants.EQUAL_SIGN_KEYWORD, - Constants.NOT_EQUAL_SIGN_KEYWORD, - Constants.GREATER_THAN_SIGN_KEYWORD, - Constants.GREATER_THAN_EQUAL_TO_SIGN_KEYWORD, - Constants.LESS_THAN_SIGN_KEYWORD, - Constants.LESS_THAN_EQUAL_TO_SIGN_KEYWORD) - ); - }}, - KeywordAction.REVERSE_LOGIC)); + new Keyword( + Constants.NOT_KEYWORD, + Arrays.asList( + Constants.EQUAL_SIGN_KEYWORD, + Constants.GREATER_THAN_SIGN_KEYWORD, + Constants.LESS_THAN_SIGN_KEYWORD, + Constants.GREATER_THAN_EQUAL_TO_SIGN_KEYWORD, + Constants.LESS_THAN_EQUAL_TO_SIGN_KEYWORD + ), + new HashMap>() {{ + put( + Constants.EXPECT_KEYWORD + Arrays.asList( + Constants.TO_BE_KEYWORD, + Constants.TO_EQUAL_KEYWORD, + Constants.EQUAL_SIGN_KEYWORD, + Constants.NOT_EQUAL_SIGN_KEYWORD, + Constants.GREATER_THAN_SIGN_KEYWORD, + Constants.GREATER_THAN_EQUAL_TO_SIGN_KEYWORD, + Constants.LESS_THAN_SIGN_KEYWORD, + Constants.LESS_THAN_EQUAL_TO_SIGN_KEYWORD + ) + ); + }}, + KeywordAction.REVERSE_LOGIC + ) + ); //--------------------------------NOT EQUAL SIGN - keywordInfo.put(Constants.NOT_EQUAL_SIGN_KEYWORD, - new Keyword(Constants.NOT_EQUAL_SIGN_KEYWORD, - Arrays.asList(), - new HashMap>() {{ - put(Constants.EXPECT_KEYWORD, Arrays.asList( - Constants.ALPHANUMERIC_LITERAL_KEYWORD, - Constants.NUMERIC_LITERAL_KEYWORD, - Constants.BOOLEAN_VALUE, - Constants.COBOL_TOKEN) - ); - }}, - KeywordAction.REVERSE_LOGIC)); + keywordInfo.put( + Constants.NOT_EQUAL_SIGN_KEYWORD, + new Keyword(Constants.NOT_EQUAL_SIGN_KEYWORD, + Arrays.asList(), + new HashMap>() {{ + put( + Constants.EXPECT_KEYWORD, + Arrays.asList( + Constants.ALPHANUMERIC_LITERAL_KEYWORD, + Constants.NUMERIC_LITERAL_KEYWORD, + Constants.BOOLEAN_VALUE, + Constants.COBOL_TOKEN + ) + ); + }}, + KeywordAction.REVERSE_LOGIC + ) + ); //--------------------------------TO BE - keywordInfo.put(Constants.TO_BE_KEYWORD, - new Keyword(Constants.TO_BE_KEYWORD, - Arrays.asList(), - new HashMap>() {{ - put(Constants.EXPECT_KEYWORD, Arrays.asList( - Constants.NUMERIC_KEYWORD, - Constants.ALPHANUMERIC_LITERAL_KEYWORD, - Constants.NUMERIC_LITERAL_KEYWORD, - Constants.BOOLEAN_VALUE, - Constants.COBOL_TOKEN) - ); - }}, - KeywordAction.EXPECTED_VALUE)); + keywordInfo.put( + Constants.TO_BE_KEYWORD, + new Keyword( + Constants.TO_BE_KEYWORD, + Arrays.asList(), + new HashMap>() {{ + put( + Constants.EXPECT_KEYWORD, + Arrays.asList( + Constants.NUMERIC_KEYWORD, + Constants.ALPHANUMERIC_LITERAL_KEYWORD, + Constants.NUMERIC_LITERAL_KEYWORD, + Constants.BOOLEAN_VALUE, + Constants.COBOL_TOKEN + ) + ); + }}, + KeywordAction.EXPECTED_VALUE + ) + ); //--------------------------------TO EQUAL - keywordInfo.put(Constants.TO_EQUAL_KEYWORD, - new Keyword(Constants.TO_EQUAL_KEYWORD, - Arrays.asList(), - new HashMap>() {{ - put(Constants.EXPECT_KEYWORD, Arrays.asList( - Constants.NUMERIC_KEYWORD, - Constants.ALPHANUMERIC_LITERAL_KEYWORD, - Constants.NUMERIC_LITERAL_KEYWORD, - Constants.BOOLEAN_VALUE, - Constants.COBOL_TOKEN) - ); - }}, - KeywordAction.EXPECTED_VALUE)); + keywordInfo.put( + Constants.TO_EQUAL_KEYWORD, + new Keyword( + Constants.TO_EQUAL_KEYWORD, + Arrays.asList(), + new HashMap>() {{ + put( + Constants.EXPECT_KEYWORD, + Arrays.asList( + Constants.NUMERIC_KEYWORD, + Constants.ALPHANUMERIC_LITERAL_KEYWORD, + Constants.NUMERIC_LITERAL_KEYWORD, + Constants.BOOLEAN_VALUE, + Constants.COBOL_TOKEN + ) + ); + }}, + KeywordAction.EXPECTED_VALUE + ) + ); //--------------------------------EQUAL SIGN - keywordInfo.put(Constants.EQUAL_SIGN_KEYWORD, - new Keyword(Constants.EQUAL_SIGN_KEYWORD, - Arrays.asList(Constants.FIELDNAME_KEYWORD, - Constants.NUMERIC_KEYWORD, - Constants.COBOL_TOKEN, - Constants.ALPHANUMERIC_LITERAL_KEYWORD, - Constants.NUMERIC_LITERAL_KEYWORD, - Constants.BOOLEAN_VALUE), - new HashMap>() {{ - put(Constants.EXPECT_KEYWORD, Arrays.asList( - Constants.NUMERIC_KEYWORD, - Constants.ALPHANUMERIC_LITERAL_KEYWORD, - Constants.NUMERIC_LITERAL_KEYWORD, - Constants.BOOLEAN_VALUE, - Constants.COBOL_TOKEN) - ); - }}, - KeywordAction.EXPECTED_VALUE)); + keywordInfo.put( + Constants.EQUAL_SIGN_KEYWORD, + new Keyword(Constants.EQUAL_SIGN_KEYWORD, + Arrays.asList( + Constants.FIELDNAME_KEYWORD, + Constants.NUMERIC_KEYWORD, + Constants.COBOL_TOKEN, + Constants.ALPHANUMERIC_LITERAL_KEYWORD, + Constants.NUMERIC_LITERAL_KEYWORD, + Constants.BOOLEAN_VALUE), + new HashMap>() {{ + put( + Constants.EXPECT_KEYWORD, + Arrays.asList( + Constants.NUMERIC_KEYWORD, + Constants.ALPHANUMERIC_LITERAL_KEYWORD, + Constants.NUMERIC_LITERAL_KEYWORD, + Constants.BOOLEAN_VALUE, + Constants.COBOL_TOKEN + ) + ); + }}, + KeywordAction.EXPECTED_VALUE + ) + ); //--------------------------------GREATER THAN SIGN - keywordInfo.put(Constants.GREATER_THAN_SIGN_KEYWORD, - new Keyword(Constants.GREATER_THAN_SIGN_KEYWORD, - Arrays.asList(Constants.FIELDNAME_KEYWORD, - Constants.NUMERIC_KEYWORD, - Constants.COBOL_TOKEN, - Constants.ALPHANUMERIC_LITERAL_KEYWORD, - Constants.NUMERIC_LITERAL_KEYWORD, - Constants.BOOLEAN_VALUE), - new HashMap>() {{ - put(Constants.EXPECT_KEYWORD, Arrays.asList( - Constants.NUMERIC_KEYWORD, - Constants.ALPHANUMERIC_LITERAL_KEYWORD, - Constants.NUMERIC_LITERAL_KEYWORD, - Constants.BOOLEAN_VALUE, - Constants.COBOL_TOKEN) - ); - }}, - KeywordAction.EXPECTED_VALUE)); + keywordInfo.put( + Constants.GREATER_THAN_SIGN_KEYWORD, + new Keyword( + Constants.GREATER_THAN_SIGN_KEYWORD, + Arrays.asList( + Constants.FIELDNAME_KEYWORD, + Constants.NUMERIC_KEYWORD, + Constants.COBOL_TOKEN, + Constants.ALPHANUMERIC_LITERAL_KEYWORD, + Constants.NUMERIC_LITERAL_KEYWORD, + Constants.BOOLEAN_VALUE + ), + new HashMap>() {{ + put( + Constants.EXPECT_KEYWORD, + Arrays.asList( + Constants.NUMERIC_KEYWORD, + Constants.ALPHANUMERIC_LITERAL_KEYWORD, + Constants.NUMERIC_LITERAL_KEYWORD, + Constants.BOOLEAN_VALUE, + Constants.COBOL_TOKEN + ) + ); + }}, + KeywordAction.EXPECTED_VALUE + ) + ); //--------------------------------GREATER THAN EQUAL TO SIGN - keywordInfo.put(Constants.GREATER_THAN_EQUAL_TO_SIGN_KEYWORD, - new Keyword(Constants.GREATER_THAN_EQUAL_TO_SIGN_KEYWORD, - Arrays.asList(Constants.FIELDNAME_KEYWORD, - Constants.NUMERIC_KEYWORD, - Constants.COBOL_TOKEN, - Constants.ALPHANUMERIC_LITERAL_KEYWORD, - Constants.NUMERIC_LITERAL_KEYWORD, - Constants.BOOLEAN_VALUE), - new HashMap>() {{ - put(Constants.EXPECT_KEYWORD, Arrays.asList( - Constants.NUMERIC_KEYWORD, - Constants.ALPHANUMERIC_LITERAL_KEYWORD, - Constants.NUMERIC_LITERAL_KEYWORD, - Constants.BOOLEAN_VALUE, - Constants.COBOL_TOKEN) - ); - }}, - KeywordAction.EXPECTED_VALUE)); + keywordInfo.put( + Constants.GREATER_THAN_EQUAL_TO_SIGN_KEYWORD, + new Keyword( + Constants.GREATER_THAN_EQUAL_TO_SIGN_KEYWORD, + Arrays.asList( + Constants.FIELDNAME_KEYWORD, + Constants.NUMERIC_KEYWORD, + Constants.COBOL_TOKEN, + Constants.ALPHANUMERIC_LITERAL_KEYWORD, + Constants.NUMERIC_LITERAL_KEYWORD, + Constants.BOOLEAN_VALUE + ), + new HashMap>() {{ + put( + Constants.EXPECT_KEYWORD, + Arrays.asList( + Constants.NUMERIC_KEYWORD, + Constants.ALPHANUMERIC_LITERAL_KEYWORD, + Constants.NUMERIC_LITERAL_KEYWORD, + Constants.BOOLEAN_VALUE, + Constants.COBOL_TOKEN + ) + ); + }}, + KeywordAction.EXPECTED_VALUE + ) + ); //--------------------------------LESS THAN SIGN - keywordInfo.put(Constants.LESS_THAN_SIGN_KEYWORD, - new Keyword(Constants.LESS_THAN_SIGN_KEYWORD, - Arrays.asList(Constants.FIELDNAME_KEYWORD, - Constants.NUMERIC_KEYWORD, - Constants.COBOL_TOKEN, - Constants.ALPHANUMERIC_LITERAL_KEYWORD, - Constants.NUMERIC_LITERAL_KEYWORD, - Constants.BOOLEAN_VALUE), - new HashMap>() {{ - put(Constants.EXPECT_KEYWORD, Arrays.asList( - Constants.NUMERIC_KEYWORD, - Constants.ALPHANUMERIC_LITERAL_KEYWORD, - Constants.NUMERIC_LITERAL_KEYWORD, - Constants.BOOLEAN_VALUE, - Constants.COBOL_TOKEN) - ); - }}, - KeywordAction.EXPECTED_VALUE)); + keywordInfo.put( + Constants.LESS_THAN_SIGN_KEYWORD, + new Keyword( + Constants.LESS_THAN_SIGN_KEYWORD, + Arrays.asList( + Constants.FIELDNAME_KEYWORD, + Constants.NUMERIC_KEYWORD, + Constants.COBOL_TOKEN, + Constants.ALPHANUMERIC_LITERAL_KEYWORD, + Constants.NUMERIC_LITERAL_KEYWORD, + Constants.BOOLEAN_VALUE + ), + new HashMap>() {{ + put( + Constants.EXPECT_KEYWORD, + Arrays.asList( + Constants.NUMERIC_KEYWORD, + Constants.ALPHANUMERIC_LITERAL_KEYWORD, + Constants.NUMERIC_LITERAL_KEYWORD, + Constants.BOOLEAN_VALUE, + Constants.COBOL_TOKEN + ) + ); + }}, + KeywordAction.EXPECTED_VALUE + ) + ); //--------------------------------LESS THAN EQUAL TO SIGN - keywordInfo.put(Constants.LESS_THAN_EQUAL_TO_SIGN_KEYWORD, - new Keyword(Constants.LESS_THAN_EQUAL_TO_SIGN_KEYWORD, - Arrays.asList(Constants.FIELDNAME_KEYWORD, - Constants.NUMERIC_KEYWORD, - Constants.COBOL_TOKEN, - Constants.ALPHANUMERIC_LITERAL_KEYWORD, - Constants.NUMERIC_LITERAL_KEYWORD, - Constants.BOOLEAN_VALUE), - new HashMap>() {{ - put(Constants.EXPECT_KEYWORD, Arrays.asList( - Constants.NUMERIC_KEYWORD, - Constants.ALPHANUMERIC_LITERAL_KEYWORD, - Constants.NUMERIC_LITERAL_KEYWORD, - Constants.BOOLEAN_VALUE, - Constants.COBOL_TOKEN) - ); - }}, - KeywordAction.EXPECTED_VALUE)); + keywordInfo.put( + Constants.LESS_THAN_EQUAL_TO_SIGN_KEYWORD, + new Keyword( + Constants.LESS_THAN_EQUAL_TO_SIGN_KEYWORD, + Arrays.asList( + Constants.FIELDNAME_KEYWORD, + Constants.NUMERIC_KEYWORD, + Constants.COBOL_TOKEN, + Constants.ALPHANUMERIC_LITERAL_KEYWORD, + Constants.NUMERIC_LITERAL_KEYWORD, + Constants.BOOLEAN_VALUE + ), + new HashMap>() {{ + put( + Constants.EXPECT_KEYWORD, + Arrays.asList( + Constants.NUMERIC_KEYWORD, + Constants.ALPHANUMERIC_LITERAL_KEYWORD, + Constants.NUMERIC_LITERAL_KEYWORD, + Constants.BOOLEAN_VALUE, + Constants.COBOL_TOKEN + ) + ); + }}, + KeywordAction.EXPECTED_VALUE + ) + ); //--------------------------------NUMERIC - keywordInfo.put(Constants.NUMERIC_KEYWORD, - new Keyword(Constants.NUMERIC_KEYWORD, - Arrays.asList(), - new HashMap>() {{ - put(Constants.EXPECT_KEYWORD, Arrays.asList( - Constants.ALPHANUMERIC_LITERAL_KEYWORD, - Constants.NUMERIC_LITERAL_KEYWORD, - Constants.BOOLEAN_VALUE, - Constants.COBOL_TOKEN) - ); - }}, - KeywordAction.EXPECTED_VALUE - ) + keywordInfo.put( + Constants.NUMERIC_KEYWORD, + new Keyword(Constants.NUMERIC_KEYWORD, + Arrays.asList(), + new HashMap>() {{ + put( + Constants.EXPECT_KEYWORD, + Arrays.asList( + Constants.ALPHANUMERIC_LITERAL_KEYWORD, + Constants.NUMERIC_LITERAL_KEYWORD, + Constants.BOOLEAN_VALUE, + Constants.COBOL_TOKEN + ) + ); + }}, + KeywordAction.EXPECTED_VALUE + ) ); //--------------------------------PARENTHESIS-ENCLOSED - keywordInfo.put(Constants.PARENTHESIS_ENCLOSED_KEYWORD, - new Keyword(Constants.PARENTHESIS_ENCLOSED_KEYWORD, - Arrays.asList(Constants.PARENTHESIS_ENCLOSED_KEYWORD, - Constants.NOT_KEYWORD, - Constants.EQUAL_SIGN_KEYWORD, - Constants.GREATER_THAN_SIGN_KEYWORD, - Constants.LESS_THAN_SIGN_KEYWORD, - Constants.GREATER_THAN_EQUAL_TO_SIGN_KEYWORD, - Constants.LESS_THAN_EQUAL_TO_SIGN_KEYWORD, - Constants.COBOL_TOKEN, - Constants.TESTSUITE_KEYWORD, - Constants.TESTCASE_KEYWORD, - Constants.MOCK_KEYWORD, - Constants.VERIFY_KEYWORD, - Constants.EXPECT_KEYWORD), - new HashMap>() {{ - put(Constants.EXPECT_KEYWORD, Arrays.asList( - Constants.TO_BE_KEYWORD, - Constants.EQUAL_SIGN_KEYWORD, - Constants.TO_EQUAL_KEYWORD, - Constants.NOT_KEYWORD, - Constants.LESS_THAN_SIGN_KEYWORD, - Constants.NOT_EQUAL_SIGN_KEYWORD, - Constants.LESS_THAN_SIGN_KEYWORD, - Constants.EQUAL_SIGN_KEYWORD, - Constants.GREATER_THAN_SIGN_KEYWORD, - Constants.GREATER_THAN_EQUAL_TO_SIGN_KEYWORD, - Constants.LESS_THAN_EQUAL_TO_SIGN_KEYWORD, - Constants.ALPHANUMERIC_LITERAL_KEYWORD, - Constants.FIELDNAME_KEYWORD, - Constants.QUALIFIED_FIELD_NAME, - Constants.PARENTHESIS_ENCLOSED_KEYWORD) - ); - }}, - KeywordAction.COBOL_STATEMENT)); + keywordInfo.put( + Constants.PARENTHESIS_ENCLOSED_KEYWORD, + new Keyword( + Constants.PARENTHESIS_ENCLOSED_KEYWORD, + Arrays.asList( + Constants.PARENTHESIS_ENCLOSED_KEYWORD, + Constants.NOT_KEYWORD, + Constants.EQUAL_SIGN_KEYWORD, + Constants.GREATER_THAN_SIGN_KEYWORD, + Constants.LESS_THAN_SIGN_KEYWORD, + Constants.GREATER_THAN_EQUAL_TO_SIGN_KEYWORD, + Constants.LESS_THAN_EQUAL_TO_SIGN_KEYWORD, + Constants.COBOL_TOKEN, + Constants.TESTSUITE_KEYWORD, + Constants.TESTCASE_KEYWORD, + Constants.MOCK_KEYWORD, + Constants.VERIFY_KEYWORD, + Constants.EXPECT_KEYWORD + ), + new HashMap>() {{ + put( + Constants.EXPECT_KEYWORD, + Arrays.asList( + Constants.TO_BE_KEYWORD, + Constants.EQUAL_SIGN_KEYWORD, + Constants.TO_EQUAL_KEYWORD, + Constants.NOT_KEYWORD, + Constants.LESS_THAN_SIGN_KEYWORD, + Constants.NOT_EQUAL_SIGN_KEYWORD, + Constants.LESS_THAN_SIGN_KEYWORD, + Constants.EQUAL_SIGN_KEYWORD, + Constants.GREATER_THAN_SIGN_KEYWORD, + Constants.GREATER_THAN_EQUAL_TO_SIGN_KEYWORD, + Constants.LESS_THAN_EQUAL_TO_SIGN_KEYWORD, + Constants.ALPHANUMERIC_LITERAL_KEYWORD, + Constants.FIELDNAME_KEYWORD, + Constants.QUALIFIED_FIELD_NAME, + Constants.PARENTHESIS_ENCLOSED_KEYWORD + ) + ); + }}, + KeywordAction.COBOL_STATEMENT + ) + ); //--------------------------------ALPHANUMERIC LITERAL - keywordInfo.put(Constants.ALPHANUMERIC_LITERAL_KEYWORD, - new Keyword(Constants.ALPHANUMERIC_LITERAL_KEYWORD, - Arrays.asList(Constants.ALPHANUMERIC_LITERAL_KEYWORD, - Constants.EXPECT_KEYWORD, - Constants.COBOL_TOKEN, - Constants.TESTSUITE_KEYWORD, - Constants.TESTCASE_KEYWORD, - Constants.MOCK_KEYWORD, - Constants.VERIFY_KEYWORD, - Constants.BEFORE_EACH_TOKEN, - Constants.BEFORE_EACH_TOKEN_HYPHEN, - Constants.AFTER_EACH_TOKEN, - Constants.AFTER_EACH_TOKEN_HYPHEN, + keywordInfo.put( + Constants.ALPHANUMERIC_LITERAL_KEYWORD, + new Keyword( + Constants.ALPHANUMERIC_LITERAL_KEYWORD, + Arrays.asList( + Constants.ALPHANUMERIC_LITERAL_KEYWORD, + Constants.EXPECT_KEYWORD, + Constants.COBOL_TOKEN, + Constants.TESTSUITE_KEYWORD, + Constants.TESTCASE_KEYWORD, + Constants.MOCK_KEYWORD, + Constants.VERIFY_KEYWORD, + Constants.BEFORE_EACH_TOKEN, + Constants.BEFORE_EACH_TOKEN_HYPHEN, + Constants.AFTER_EACH_TOKEN, + Constants.AFTER_EACH_TOKEN_HYPHEN, + Constants.FIELDNAME_KEYWORD, + Constants.BY_REFERENCE_TOKEN, + Constants.BY_CONTENT_TOKEN, + Constants.BY_VALUE_TOKEN, + Constants.USING_TOKEN + ), + new HashMap>() {{ + put( + Constants.MOCK_KEYWORD, + Arrays.asList( + Constants.ENDMOCK_KEYWORD, Constants.FIELDNAME_KEYWORD, Constants.BY_REFERENCE_TOKEN, Constants.BY_CONTENT_TOKEN, Constants.BY_VALUE_TOKEN, - Constants.USING_TOKEN), - new HashMap>() {{ - put(Constants.MOCK_KEYWORD, Arrays.asList( - Constants.ENDMOCK_KEYWORD, - Constants.FIELDNAME_KEYWORD, - Constants.BY_REFERENCE_TOKEN, - Constants.BY_CONTENT_TOKEN, - Constants.BY_VALUE_TOKEN, - Constants.USING_TOKEN) - ); - put(Constants.VERIFY_KEYWORD, Arrays.asList( - Constants.USING_TOKEN, - Constants.HAPPENED_KEYWORD, - Constants.NEVER_HAPPENED_KEYWORD) - ); - }}, - KeywordAction.FIELDNAME)); + Constants.USING_TOKEN + ) + ); + put( + Constants.VERIFY_KEYWORD, + Arrays.asList( + Constants.USING_TOKEN, + Constants.HAPPENED_KEYWORD, + Constants.NEVER_HAPPENED_KEYWORD + ) + ); + }}, + KeywordAction.FIELDNAME + ) + ); //--------------------------------NUMERIC LITERAL - keywordInfo.put(Constants.NUMERIC_LITERAL_KEYWORD, - new Keyword(Constants.NUMERIC_LITERAL_KEYWORD, - Arrays.asList(Constants.EXPECT_KEYWORD, - Constants.COBOL_TOKEN, - Constants.TESTSUITE_KEYWORD, - Constants.TESTCASE_KEYWORD, - Constants.MOCK_KEYWORD, - Constants.VERIFY_KEYWORD, - Constants.TIMES_KEYWORD), - new HashMap>() {{ - put(Constants.VERIFY_KEYWORD, Arrays.asList( - Constants.TIMES_KEYWORD, - Constants.TIME_KEYWORD) - ); - }}, - KeywordAction.FIELDNAME)); + keywordInfo.put( + Constants.NUMERIC_LITERAL_KEYWORD, + new Keyword( + Constants.NUMERIC_LITERAL_KEYWORD, + Arrays.asList( + Constants.EXPECT_KEYWORD, + Constants.COBOL_TOKEN, + Constants.TESTSUITE_KEYWORD, + Constants.TESTCASE_KEYWORD, + Constants.MOCK_KEYWORD, + Constants.VERIFY_KEYWORD, + Constants.TIMES_KEYWORD + ), + new HashMap>() {{ + put( + Constants.VERIFY_KEYWORD, + Arrays.asList( + Constants.TIMES_KEYWORD, + Constants.TIME_KEYWORD + ) + ); + }}, + KeywordAction.FIELDNAME + ) + ); //--------------------------------COBOL TOKEN - keywordInfo.put(Constants.COBOL_TOKEN, - new Keyword(Constants.COBOL_TOKEN, - Arrays.asList(Constants.ALPHANUMERIC_LITERAL_KEYWORD, - Constants.NUMERIC_LITERAL_KEYWORD, - Constants.BOOLEAN_VALUE, - Constants.FIELDNAME_KEYWORD, - Constants.EXPECT_KEYWORD, - Constants.COBOL_TOKEN, - Constants.TESTSUITE_KEYWORD, - Constants.TESTCASE_KEYWORD, - Constants.MOCK_KEYWORD, - Constants.VERIFY_KEYWORD, - Constants.PARENTHESIS_ENCLOSED_KEYWORD, - Constants.GREATER_THAN_SIGN_KEYWORD, - Constants.LESS_THAN_SIGN_KEYWORD, - Constants.NOT_KEYWORD, - Constants.EQUAL_SIGN_KEYWORD, - Constants.GREATER_THAN_EQUAL_TO_SIGN_KEYWORD, - Constants.LESS_THAN_EQUAL_TO_SIGN_KEYWORD, - Constants.TIME_KEYWORD, - Constants.TIMES_KEYWORD, - Constants.QUALIFIED_FIELD_NAME), - KeywordAction.COBOL_STATEMENT)); + keywordInfo.put( + Constants.COBOL_TOKEN, + new Keyword( + Constants.COBOL_TOKEN, + Arrays.asList( + Constants.ALPHANUMERIC_LITERAL_KEYWORD, + Constants.NUMERIC_LITERAL_KEYWORD, + Constants.BOOLEAN_VALUE, + Constants.FIELDNAME_KEYWORD, + Constants.EXPECT_KEYWORD, + Constants.COBOL_TOKEN, + Constants.TESTSUITE_KEYWORD, + Constants.TESTCASE_KEYWORD, + Constants.MOCK_KEYWORD, + Constants.VERIFY_KEYWORD, + Constants.PARENTHESIS_ENCLOSED_KEYWORD, + Constants.GREATER_THAN_SIGN_KEYWORD, + Constants.LESS_THAN_SIGN_KEYWORD, + Constants.NOT_KEYWORD, + Constants.EQUAL_SIGN_KEYWORD, + Constants.GREATER_THAN_EQUAL_TO_SIGN_KEYWORD, + Constants.LESS_THAN_EQUAL_TO_SIGN_KEYWORD, + Constants.TIME_KEYWORD, + Constants.TIMES_KEYWORD, + Constants.QUALIFIED_FIELD_NAME + ), + KeywordAction.COBOL_STATEMENT + ) + ); //--------------------------------BOOLEAN VALUE - keywordInfo.put(Constants.BOOLEAN_VALUE, - new Keyword(Constants.BOOLEAN_VALUE, - Arrays.asList(Constants.EXPECT_KEYWORD, - Constants.COBOL_TOKEN, - Constants.TESTSUITE_KEYWORD, - Constants.TESTCASE_KEYWORD, - Constants.MOCK_KEYWORD, - Constants.VERIFY_KEYWORD), - KeywordAction.BOOLEAN_COMPARE)); + keywordInfo.put( + Constants.BOOLEAN_VALUE, + new Keyword( + Constants.BOOLEAN_VALUE, + Arrays.asList( + Constants.EXPECT_KEYWORD, + Constants.COBOL_TOKEN, + Constants.TESTSUITE_KEYWORD, + Constants.TESTCASE_KEYWORD, + Constants.MOCK_KEYWORD, + Constants.VERIFY_KEYWORD + ), + KeywordAction.BOOLEAN_COMPARE + ) + ); //--------------------------------BEFORE EACH - keywordInfo.put(Constants.BEFORE_EACH_TOKEN, - new Keyword(Constants.BEFORE_EACH_TOKEN, - Arrays.asList(Constants.END_BEFORE_TOKEN), - KeywordAction.NONE)); + keywordInfo.put( + Constants.BEFORE_EACH_TOKEN, + new Keyword( + Constants.BEFORE_EACH_TOKEN, + Arrays.asList( + Constants.END_BEFORE_TOKEN + ), + KeywordAction.NONE + ) + ); //--------------------------------END BEFORE - keywordInfo.put(Constants.END_BEFORE_TOKEN, - new Keyword(Constants.END_BEFORE_TOKEN, - Arrays.asList(Constants.AFTER_EACH_TOKEN, - Constants.AFTER_EACH_TOKEN_HYPHEN, - Constants.TESTSUITE_KEYWORD, - Constants.TESTCASE_KEYWORD, - Constants.MOCK_KEYWORD), - KeywordAction.NONE)); + keywordInfo.put( + Constants.END_BEFORE_TOKEN, + new Keyword( + Constants.END_BEFORE_TOKEN, + Arrays.asList( + Constants.AFTER_EACH_TOKEN, + Constants.AFTER_EACH_TOKEN_HYPHEN, + Constants.TESTSUITE_KEYWORD, + Constants.TESTCASE_KEYWORD, + Constants.MOCK_KEYWORD + ), + KeywordAction.NONE + ) + ); //--------------------------------AFTER EACH - keywordInfo.put(Constants.AFTER_EACH_TOKEN, - new Keyword(Constants.AFTER_EACH_TOKEN, - Arrays.asList(Constants.END_AFTER_TOKEN), - KeywordAction.NONE)); + keywordInfo.put( + Constants.AFTER_EACH_TOKEN, + new Keyword( + Constants.AFTER_EACH_TOKEN, + Arrays.asList(Constants.END_AFTER_TOKEN), + KeywordAction.NONE + ) + ); //--------------------------------END AFTER - keywordInfo.put(Constants.END_AFTER_TOKEN, - new Keyword(Constants.END_AFTER_TOKEN, - Arrays.asList(Constants.COBOL_TOKEN, - Constants.BEFORE_EACH_TOKEN, - Constants.BEFORE_EACH_TOKEN_HYPHEN, - Constants.TESTSUITE_KEYWORD, - Constants.TESTCASE_KEYWORD, - Constants.MOCK_KEYWORD), - KeywordAction.NONE)); + keywordInfo.put( + Constants.END_AFTER_TOKEN, + new Keyword( + Constants.END_AFTER_TOKEN, + Arrays.asList( + Constants.COBOL_TOKEN, + Constants.BEFORE_EACH_TOKEN, + Constants.BEFORE_EACH_TOKEN_HYPHEN, + Constants.TESTSUITE_KEYWORD, + Constants.TESTCASE_KEYWORD, + Constants.MOCK_KEYWORD + ), + KeywordAction.NONE + ) + ); //--------------------------------QUALIFIED FIELD NAME - keywordInfo.put(Constants.QUALIFIED_FIELD_NAME, - new Keyword(Constants.QUALIFIED_FIELD_NAME, - Arrays.asList(Constants.COBOL_TOKEN, Constants.FIELDNAME_KEYWORD), - new HashMap>() {{ - put(Constants.EXPECT_KEYWORD, Arrays.asList( - Constants.FIELDNAME_KEYWORD) - ); - }}, - KeywordAction.NONE)); + keywordInfo.put( + Constants.QUALIFIED_FIELD_NAME, + new Keyword( + Constants.QUALIFIED_FIELD_NAME, + Arrays.asList( + Constants.COBOL_TOKEN, + Constants.FIELDNAME_KEYWORD + ), + new HashMap>() {{ + put( + Constants.EXPECT_KEYWORD, + Arrays.asList( + Constants.FIELDNAME_KEYWORD + ) + ); + }}, + KeywordAction.NONE + ) + ); //TODO: Remove hyphen keyword option? Backwards compatibility //--------------------------------BEFORE-EACH - keywordInfo.put(Constants.BEFORE_EACH_TOKEN_HYPHEN, - new Keyword(Constants.BEFORE_EACH_TOKEN_HYPHEN, - Arrays.asList(Constants.END_BEFORE_TOKEN), - KeywordAction.NONE)); + keywordInfo.put( + Constants.BEFORE_EACH_TOKEN_HYPHEN, + new Keyword( + Constants.BEFORE_EACH_TOKEN_HYPHEN, + Arrays.asList(Constants.END_BEFORE_TOKEN), + KeywordAction.NONE + ) + ); //--------------------------------AFTER-EACH - keywordInfo.put(Constants.AFTER_EACH_TOKEN_HYPHEN, - new Keyword(Constants.AFTER_EACH_TOKEN_HYPHEN, - Arrays.asList(Constants.END_AFTER_TOKEN), - KeywordAction.NONE)); + keywordInfo.put( + Constants.AFTER_EACH_TOKEN_HYPHEN, + new Keyword( + Constants.AFTER_EACH_TOKEN_HYPHEN, + Arrays.asList(Constants.END_AFTER_TOKEN), + KeywordAction.NONE + ) + ); //--------------------------------MOCK - keywordInfo.put(Constants.MOCK_KEYWORD, - new Keyword(Constants.MOCK_KEYWORD, - new ArrayList<>(), - new HashMap>() {{ - put(Constants.MOCK_KEYWORD, Arrays.asList( - Constants.MOCK_TYPE - ) - ); - }}, - KeywordAction.NONE)); + keywordInfo.put( + Constants.MOCK_KEYWORD, + new Keyword( + Constants.MOCK_KEYWORD, + new ArrayList<>(), + new HashMap>() {{ + put( + Constants.MOCK_KEYWORD, + Arrays.asList( + Constants.MOCK_TYPE + ) + ); + }}, + KeywordAction.NONE + ) + ); //--------------------------------END MOCK - keywordInfo.put(Constants.ENDMOCK_KEYWORD, - new Keyword(Constants.ENDMOCK_KEYWORD, - Arrays.asList(Constants.COBOL_TOKEN, - Constants.BEFORE_EACH_TOKEN, - Constants.BEFORE_EACH_TOKEN_HYPHEN, - Constants.AFTER_EACH_TOKEN, - Constants.AFTER_EACH_TOKEN_HYPHEN, - Constants.TESTSUITE_KEYWORD, - Constants.TESTCASE_KEYWORD, - Constants.MOCK_KEYWORD, - Constants.VERIFY_KEYWORD, - Constants.EXPECT_KEYWORD), - KeywordAction.NONE)); + keywordInfo.put( + Constants.ENDMOCK_KEYWORD, + new Keyword( + Constants.ENDMOCK_KEYWORD, + Arrays.asList( + Constants.COBOL_TOKEN, + Constants.BEFORE_EACH_TOKEN, + Constants.BEFORE_EACH_TOKEN_HYPHEN, + Constants.AFTER_EACH_TOKEN, + Constants.AFTER_EACH_TOKEN_HYPHEN, + Constants.TESTSUITE_KEYWORD, + Constants.TESTCASE_KEYWORD, + Constants.MOCK_KEYWORD, + Constants.VERIFY_KEYWORD, + Constants.EXPECT_KEYWORD + ), + KeywordAction.NONE + ) + ); //--------------------------------MOCK TYPE - keywordInfo.put(Constants.MOCK_TYPE, - new Keyword(Constants.MOCK_TYPE, - Arrays.asList(Constants.FIELDNAME_KEYWORD, - Constants.ALPHANUMERIC_LITERAL_KEYWORD), - new HashMap>() {{ - put(Constants.MOCK_KEYWORD, Arrays.asList( - Constants.FIELDNAME_KEYWORD, - Constants.ALPHANUMERIC_LITERAL_KEYWORD)); - put(Constants.VERIFY_KEYWORD, Arrays.asList( - Constants.FIELDNAME_KEYWORD, - Constants.ALPHANUMERIC_LITERAL_KEYWORD) - ); - }}, - KeywordAction.NONE)); + keywordInfo.put( + Constants.MOCK_TYPE, + new Keyword( + Constants.MOCK_TYPE, + Arrays.asList( + Constants.FIELDNAME_KEYWORD, + Constants.ALPHANUMERIC_LITERAL_KEYWORD + ), + new HashMap>() {{ + put( + Constants.MOCK_KEYWORD, Arrays.asList( + Constants.FIELDNAME_KEYWORD, + Constants.ALPHANUMERIC_LITERAL_KEYWORD + ) + ); + put( + Constants.VERIFY_KEYWORD, + Arrays.asList( + Constants.FIELDNAME_KEYWORD, + Constants.ALPHANUMERIC_LITERAL_KEYWORD + ) + ); + }}, + KeywordAction.NONE + ) + ); //--------------------------------USING - keywordInfo.put(Constants.USING_TOKEN, - new Keyword(Constants.USING_TOKEN, - Arrays.asList(Constants.FIELDNAME_KEYWORD, - Constants.BY_REFERENCE_TOKEN, - Constants.BY_CONTENT_TOKEN, - Constants.BY_VALUE_TOKEN), - new HashMap>() {{ - put(Constants.MOCK_KEYWORD, Arrays.asList( - Constants.FIELDNAME_KEYWORD, - Constants.BY_REFERENCE_TOKEN, - Constants.BY_CONTENT_TOKEN, - Constants.BY_VALUE_TOKEN)); - put(Constants.VERIFY_KEYWORD, Arrays.asList( - Constants.FIELDNAME_KEYWORD, - Constants.BY_REFERENCE_TOKEN, - Constants.BY_CONTENT_TOKEN, - Constants.BY_VALUE_TOKEN) - ); - }}, - KeywordAction.NONE)); + keywordInfo.put( + Constants.USING_TOKEN, + new Keyword( + Constants.USING_TOKEN, + Arrays.asList( + Constants.FIELDNAME_KEYWORD, + Constants.BY_REFERENCE_TOKEN, + Constants.BY_CONTENT_TOKEN, + Constants.BY_VALUE_TOKEN + ), + new HashMap>() {{ + put( + Constants.MOCK_KEYWORD, + Arrays.asList( + Constants.FIELDNAME_KEYWORD, + Constants.BY_REFERENCE_TOKEN, + Constants.BY_CONTENT_TOKEN, + Constants.BY_VALUE_TOKEN + ) + ); + put( + Constants.VERIFY_KEYWORD, + Arrays.asList( + Constants.FIELDNAME_KEYWORD, + Constants.BY_REFERENCE_TOKEN, + Constants.BY_CONTENT_TOKEN, + Constants.BY_VALUE_TOKEN + ) + ); + }}, + KeywordAction.NONE + ) + ); //--------------------------------BY REFERENCE - keywordInfo.put(Constants.BY_REFERENCE_TOKEN, - new Keyword(Constants.BY_REFERENCE_TOKEN, - Arrays.asList(Constants.FIELDNAME_KEYWORD), - new HashMap>() {{ - put(Constants.MOCK_KEYWORD, Arrays.asList( - Constants.FIELDNAME_KEYWORD) - ); - put(Constants.VERIFY_KEYWORD, Arrays.asList( - Constants.FIELDNAME_KEYWORD) - ); - }}, - KeywordAction.NONE)); + keywordInfo.put( + Constants.BY_REFERENCE_TOKEN, + new Keyword( + Constants.BY_REFERENCE_TOKEN, + Arrays.asList(Constants.FIELDNAME_KEYWORD), + new HashMap>() {{ + put( + Constants.MOCK_KEYWORD, + Arrays.asList(Constants.FIELDNAME_KEYWORD) + ); + put( + Constants.VERIFY_KEYWORD, + Arrays.asList(Constants.FIELDNAME_KEYWORD) + ); + }}, + KeywordAction.NONE + ) + ); //--------------------------------BY CONTENT - keywordInfo.put(Constants.BY_CONTENT_TOKEN, - new Keyword(Constants.BY_CONTENT_TOKEN, - Arrays.asList(Constants.FIELDNAME_KEYWORD), - new HashMap>() {{ - put(Constants.MOCK_KEYWORD, Arrays.asList( - Constants.FIELDNAME_KEYWORD) - ); - put(Constants.VERIFY_KEYWORD, Arrays.asList( - Constants.FIELDNAME_KEYWORD) - ); - }}, - KeywordAction.NONE)); + keywordInfo.put( + Constants.BY_CONTENT_TOKEN, + new Keyword( + Constants.BY_CONTENT_TOKEN, + Arrays.asList(Constants.FIELDNAME_KEYWORD), + new HashMap>() {{ + put( + Constants.MOCK_KEYWORD, + Arrays.asList(Constants.FIELDNAME_KEYWORD) + ); + put( + Constants.VERIFY_KEYWORD, + Arrays.asList(Constants.FIELDNAME_KEYWORD) + ); + }}, + KeywordAction.NONE + ) + ); //--------------------------------BY VALUE - keywordInfo.put(Constants.BY_VALUE_TOKEN, - new Keyword(Constants.BY_VALUE_TOKEN, - Arrays.asList(Constants.FIELDNAME_KEYWORD), - new HashMap>() {{ - put(Constants.MOCK_KEYWORD, Arrays.asList( - Constants.FIELDNAME_KEYWORD) - ); - put(Constants.VERIFY_KEYWORD, Arrays.asList( - Constants.FIELDNAME_KEYWORD) - ); - }}, - KeywordAction.NONE)); + keywordInfo.put( + Constants.BY_VALUE_TOKEN, + new Keyword( + Constants.BY_VALUE_TOKEN, + Arrays.asList(Constants.FIELDNAME_KEYWORD), + new HashMap>() {{ + put( + Constants.MOCK_KEYWORD, + Arrays.asList(Constants.FIELDNAME_KEYWORD) + ); + put( + Constants.VERIFY_KEYWORD, + Arrays.asList(Constants.FIELDNAME_KEYWORD) + ); + }}, + KeywordAction.NONE + ) + ); //--------------------------------VERIFY - keywordInfo.put(Constants.VERIFY_KEYWORD, - new Keyword(Constants.VERIFY_KEYWORD, - Arrays.asList(), - new HashMap>() {{ - put(Constants.VERIFY_KEYWORD, Arrays.asList( - Constants.MOCK_TYPE) - ); - }}, - KeywordAction.ACTUAL_FIELDNAME)); + keywordInfo.put( + Constants.VERIFY_KEYWORD, + new Keyword( + Constants.VERIFY_KEYWORD, + Arrays.asList(), + new HashMap>() {{ + put( + Constants.VERIFY_KEYWORD, + Arrays.asList(Constants.MOCK_TYPE) + ); + }}, + KeywordAction.ACTUAL_FIELDNAME + ) + ); //--------------------------------NEVER HAPPENED - keywordInfo.put(Constants.NEVER_HAPPENED_KEYWORD, - new Keyword(Constants.NEVER_HAPPENED_KEYWORD, - Arrays.asList(Constants.COBOL_TOKEN, - Constants.TESTSUITE_KEYWORD, - Constants.TESTCASE_KEYWORD, - Constants.MOCK_KEYWORD, - Constants.VERIFY_KEYWORD, - Constants.EXPECT_KEYWORD), - KeywordAction.NONE)); + keywordInfo.put( + Constants.NEVER_HAPPENED_KEYWORD, + new Keyword( + Constants.NEVER_HAPPENED_KEYWORD, + Arrays.asList( + Constants.COBOL_TOKEN, + Constants.TESTSUITE_KEYWORD, + Constants.TESTCASE_KEYWORD, + Constants.MOCK_KEYWORD, + Constants.VERIFY_KEYWORD, + Constants.EXPECT_KEYWORD + ), + KeywordAction.NONE + ) + ); //--------------------------------HAPPENED - keywordInfo.put(Constants.HAPPENED_KEYWORD, - new Keyword(Constants.HAPPENED_KEYWORD, - Arrays.asList(), - new HashMap>() {{ - put(Constants.VERIFY_KEYWORD, Arrays.asList( - Constants.NUMERIC_LITERAL_KEYWORD, - Constants.ONCE_KEYWORD, - Constants.ZERO_TOKEN, - Constants.AT_LEAST_KEYWORD, - Constants.NO_MORE_THAN_KEYWORD - )); - }}, - KeywordAction.NONE)); + keywordInfo.put( + Constants.HAPPENED_KEYWORD, + new Keyword( + Constants.HAPPENED_KEYWORD, + Arrays.asList(), + new HashMap>() {{ + put( + Constants.VERIFY_KEYWORD, + Arrays.asList( + Constants.NUMERIC_LITERAL_KEYWORD, + Constants.ONCE_KEYWORD, + Constants.ZERO_TOKEN, + Constants.AT_LEAST_KEYWORD, + Constants.NO_MORE_THAN_KEYWORD + ) + ); + }}, + KeywordAction.NONE + ) + ); //--------------------------------ONCE - keywordInfo.put(Constants.ONCE_KEYWORD, - new Keyword(Constants.ONCE_KEYWORD, - Arrays.asList(Constants.COBOL_TOKEN, - Constants.TESTSUITE_KEYWORD, - Constants.TESTCASE_KEYWORD, - Constants.MOCK_KEYWORD, - Constants.VERIFY_KEYWORD, - Constants.EXPECT_KEYWORD), - KeywordAction.NONE)); + keywordInfo.put( + Constants.ONCE_KEYWORD, + new Keyword( + Constants.ONCE_KEYWORD, + Arrays.asList( + Constants.COBOL_TOKEN, + Constants.TESTSUITE_KEYWORD, + Constants.TESTCASE_KEYWORD, + Constants.MOCK_KEYWORD, + Constants.VERIFY_KEYWORD, + Constants.EXPECT_KEYWORD + ), + KeywordAction.NONE + ) + ); //--------------------------------AT LEAST - keywordInfo.put(Constants.AT_LEAST_KEYWORD, - new Keyword(Constants.AT_LEAST_KEYWORD, - Arrays.asList(), - new HashMap>() {{ - put(Constants.VERIFY_KEYWORD, Arrays.asList( - Constants.NUMERIC_LITERAL_KEYWORD, - Constants.ONCE_KEYWORD) - ); - }}, - KeywordAction.NONE)); + keywordInfo.put( + Constants.AT_LEAST_KEYWORD, + new Keyword( + Constants.AT_LEAST_KEYWORD, + Arrays.asList(), + new HashMap>() {{ + put( + Constants.VERIFY_KEYWORD, + Arrays.asList( + Constants.NUMERIC_LITERAL_KEYWORD, + Constants.ONCE_KEYWORD + ) + ); + }}, + KeywordAction.NONE + ) + ); //--------------------------------NO MORE THAN - keywordInfo.put(Constants.NO_MORE_THAN_KEYWORD, - new Keyword(Constants.NO_MORE_THAN_KEYWORD, - Arrays.asList(), - new HashMap>() {{ - put(Constants.VERIFY_KEYWORD, Arrays.asList( - Constants.NUMERIC_LITERAL_KEYWORD, - Constants.ONCE_KEYWORD) - ); - }}, - KeywordAction.NONE)); + keywordInfo.put( + Constants.NO_MORE_THAN_KEYWORD, + new Keyword( + Constants.NO_MORE_THAN_KEYWORD, + Arrays.asList(), + new HashMap>() {{ + put( + Constants.VERIFY_KEYWORD, + Arrays.asList( + Constants.NUMERIC_LITERAL_KEYWORD, + Constants.ONCE_KEYWORD + ) + ); + }}, + KeywordAction.NONE + ) + ); //--------------------------------TIME - keywordInfo.put(Constants.TIME_KEYWORD, - new Keyword(Constants.TIME_KEYWORD, - Arrays.asList(Constants.COBOL_TOKEN, - Constants.TESTSUITE_KEYWORD, - Constants.TESTCASE_KEYWORD, - Constants.MOCK_KEYWORD, - Constants.VERIFY_KEYWORD, - Constants.EXPECT_KEYWORD), - KeywordAction.NONE)); + keywordInfo.put( + Constants.TIME_KEYWORD, + new Keyword( + Constants.TIME_KEYWORD, + Arrays.asList( + Constants.COBOL_TOKEN, + Constants.TESTSUITE_KEYWORD, + Constants.TESTCASE_KEYWORD, + Constants.MOCK_KEYWORD, + Constants.VERIFY_KEYWORD, + Constants.EXPECT_KEYWORD + ), + KeywordAction.NONE + ) + ); //--------------------------------TIMES - keywordInfo.put(Constants.TIMES_KEYWORD, - new Keyword(Constants.TIMES_KEYWORD, - Arrays.asList(Constants.COBOL_TOKEN, - Constants.TESTSUITE_KEYWORD, - Constants.TESTCASE_KEYWORD, - Constants.MOCK_KEYWORD, - Constants.VERIFY_KEYWORD, - Constants.EXPECT_KEYWORD), - KeywordAction.NONE)); + keywordInfo.put( + Constants.TIMES_KEYWORD, + new Keyword( + Constants.TIMES_KEYWORD, + Arrays.asList( + Constants.COBOL_TOKEN, + Constants.TESTSUITE_KEYWORD, + Constants.TESTCASE_KEYWORD, + Constants.MOCK_KEYWORD, + Constants.VERIFY_KEYWORD, + Constants.EXPECT_KEYWORD + ), + KeywordAction.NONE + ) + ); mockTypes = Arrays.asList(Constants.SECTION_TOKEN, Constants.PARAGRAPH_TOKEN, Constants.PARA_TOKEN, Constants.CALL_TOKEN); qualifiedNameKeywords = Arrays.asList(Constants.IN_KEYWORD, Constants.OF_KEYWORD); @@ -712,7 +999,6 @@ public static Keyword getKeywordFor(String key, boolean expectFieldName) { result = keywordInfo.getOrDefault(key, keywordInfo.get(Constants.FIELDNAME_KEYWORD)); else result = keywordInfo.getOrDefault(key, keywordInfo.get(Constants.COBOL_TOKEN)); - return result; } } diff --git a/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java b/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java index 92fc88d6..fdb8ed3d 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java @@ -14,30 +14,30 @@ public class Interpreter { // Source tokens from Procedure Division that begin batch I/O statements private static final List batchFileIOVerbs = Arrays.asList( - "OPEN", "CLOSE", "READ", "WRITE", "REWRITE", "DELETE", "START"); + "OPEN", "CLOSE", "READ", "WRITE", "REWRITE", "DELETE", "START" + ); - // Used for handling source lines from copybooks that may not have the standard - // 80-byte length + // Used for handling source lines from copybooks that may not have the standard 80-byte length private static final int minimumMeaningfulSourceLineLength = 7; private static final int commentIndicatorOffset = 6; private static final List commentIndicators = Arrays.asList('*', '/'); - // Used to find areas + //Used to find areas private static final int sequenceNumberAreaEnd = 6; private static final int indicatorAreaEnd = 7; private static final int A_AreaEnd = 11; private static final int B_AreaEnd = 71; - public static int getSequenceNumberAreaIndex() { + public static int getSequenceNumberAreaIndex(){ return sequenceNumberAreaEnd; } - // TODO: Speed up method by adding 'else if's and putting 'if's inside 'if's + //TODO: Speed up method by adding 'else if's and putting 'if's inside 'if's /** * Sets flags based on a line, to be able to know which kinds of source * statements to look for when reading and interpreting lines. * - * @param line - current source line being processed + * @param line - current source line being processed * @param state - current state of flags * @return - the part of the program just entered or null if no part was entered */ @@ -146,7 +146,7 @@ public static String setFlagsForCurrentLine(CobolLine line, CobolLine nextLine, * (b) - previous line contains just a period * (c) - first token on this line is a Cobol verb * - * @param currentLine - current source line being processed + * @param currentLine - current source line being processed * @param nextMeaningfulLine - next source line that is not empty * @return - true if end of statement is recognized */ @@ -182,8 +182,7 @@ public static boolean lineEndsParagraphOrSection(CobolLine currentLine, CobolLin * This "shouldn't happen." Famous last words. * * @param line - * @return true if the source line is too short to be a meaningful line of code - * in Cobol. + * @return true if the source line is too short to be a meaningful line of code in Cobol. */ public static boolean isTooShortToBeMeaningful(CobolLine line) { return line.getUnNumberedString() == null @@ -329,15 +328,13 @@ public static boolean isSectionHeader(CobolLine line, State state) { } /** - * As paragraph headers are not associated with any keyword, the method matches - * the + * As paragraph headers are not associated with any keyword, the method matches the * source line against specific attributes that makes up a paragraph header. * - * @param line - The line to check + * @param line - The line to check * @param nextLine - The line after the line param - * @param state - current state of flags - * @return true if the source line have all the attributes of a paragraph - * header. + * @param state - current state of flags + * @return true if the source line have all the attributes of a paragraph header. */ public static boolean isParagraphHeader(CobolLine line, CobolLine nextLine, State state) { return (state.isFlagSetFor(Constants.PROCEDURE_DIVISION) @@ -352,7 +349,7 @@ && isParagraphHeaderFormat(line, nextLine) * - It has only one token * - The token is followed by a period on this or the next line. * - * @param line - The line to check + * @param line - The line to check * @param nextLine - The line after the line param * @return true if sourceLine is of the format of a paragraph header */ @@ -361,7 +358,7 @@ private static boolean isParagraphHeaderFormat(CobolLine line, CobolLine nextLin if (line.tokensSize() == 1) { if (line.getTrimmedString().endsWith(Constants.PERIOD) || (nextLine != null && - nextLine.getTrimmedString().equals(Constants.PERIOD))) + nextLine.getTrimmedString().equals(Constants.PERIOD))) return true; } } @@ -448,8 +445,7 @@ public static boolean endsInPeriod(CobolLine line) { } /** - * Checks if the last of these lines is ending the current component (SECTION, - * CALL, etc.) + * Checks if the last of these lines is ending the current component (SECTION, CALL, etc.) * This should be called from inside the component, as it only checks, if * the trimmed line ends with a period * From 1d6841a7fb51834117801d2ca9f891b9d93780c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20M=C3=B8nster?= Date: Wed, 15 Feb 2023 12:11:07 +0100 Subject: [PATCH 018/180] Fixed missing comma MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Benjamin Mønster --- .../cobolcheck/features/testSuiteParser/Keywords.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Keywords.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Keywords.java index 588f5493..4da35015 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Keywords.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Keywords.java @@ -135,7 +135,7 @@ public class Keywords { ), new HashMap>() {{ put( - Constants.EXPECT_KEYWORD + Constants.EXPECT_KEYWORD, Arrays.asList( Constants.TO_BE_KEYWORD, Constants.TO_EQUAL_KEYWORD, From b449a7e8e390383318ce489549e62b85891317e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20M=C3=B8nster?= Date: Wed, 15 Feb 2023 12:46:49 +0100 Subject: [PATCH 019/180] Minor fixes MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Benjamin Mønster --- .../features/testSuiteParser/Keywords.java | 111 +++++++++--------- 1 file changed, 54 insertions(+), 57 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Keywords.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Keywords.java index 4da35015..d6c313d8 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Keywords.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Keywords.java @@ -26,7 +26,7 @@ public class Keywords { Constants.TESTSUITE_KEYWORD, Arrays.asList(Constants.ALPHANUMERIC_LITERAL_KEYWORD), KeywordAction.TESTSUITE_NAME - ) + ); ); //--------------------------------TESTCASE @@ -35,12 +35,14 @@ public class Keywords { new Keyword(Constants.TESTCASE_KEYWORD, Arrays.asList(Constants.ALPHANUMERIC_LITERAL_KEYWORD), KeywordAction.NEW_TESTCASE - ) + ); ); //--------------------------------EXPECT - keywordInfo.put(Constants.EXPECT_KEYWORD, - new Keyword(Constants.EXPECT_KEYWORD, + keywordInfo.put( + Constants.EXPECT_KEYWORD, + new Keyword( + Constants.EXPECT_KEYWORD, Arrays.asList(Constants.FIELDNAME_KEYWORD), new HashMap>() {{ put( @@ -49,7 +51,7 @@ public class Keywords { ); }}, KeywordAction.ACTUAL_FIELDNAME - ) + ); ); //--------------------------------FIELD NAME @@ -86,7 +88,7 @@ public class Keywords { ) ); put( - Constants.EXPECT_KEYWORD, + Constants.EXPECT_KEYWORD, Arrays.asList( Constants.TO_BE_KEYWORD, Constants.EQUAL_SIGN_KEYWORD, @@ -119,7 +121,7 @@ public class Keywords { ); }}, KeywordAction.FIELDNAME - ) + ); ); //--------------------------------NOT @@ -149,7 +151,7 @@ public class Keywords { ); }}, KeywordAction.REVERSE_LOGIC - ) + ); ); //--------------------------------NOT EQUAL SIGN @@ -169,7 +171,7 @@ public class Keywords { ); }}, KeywordAction.REVERSE_LOGIC - ) + ); ); //--------------------------------TO BE @@ -191,7 +193,7 @@ public class Keywords { ); }}, KeywordAction.EXPECTED_VALUE - ) + ); ); //--------------------------------TO EQUAL @@ -213,7 +215,7 @@ public class Keywords { ); }}, KeywordAction.EXPECTED_VALUE - ) + ); ); //--------------------------------EQUAL SIGN @@ -226,7 +228,8 @@ public class Keywords { Constants.COBOL_TOKEN, Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, - Constants.BOOLEAN_VALUE), + Constants.BOOLEAN_VALUE + ), new HashMap>() {{ put( Constants.EXPECT_KEYWORD, @@ -240,7 +243,7 @@ public class Keywords { ); }}, KeywordAction.EXPECTED_VALUE - ) + ); ); //--------------------------------GREATER THAN SIGN @@ -269,7 +272,7 @@ public class Keywords { ); }}, KeywordAction.EXPECTED_VALUE - ) + ); ); //--------------------------------GREATER THAN EQUAL TO SIGN @@ -287,7 +290,7 @@ public class Keywords { ), new HashMap>() {{ put( - Constants.EXPECT_KEYWORD, + Constants.EXPECT_KEYWORD, Arrays.asList( Constants.NUMERIC_KEYWORD, Constants.ALPHANUMERIC_LITERAL_KEYWORD, @@ -298,7 +301,7 @@ public class Keywords { ); }}, KeywordAction.EXPECTED_VALUE - ) + ); ); //--------------------------------LESS THAN SIGN @@ -316,7 +319,7 @@ public class Keywords { ), new HashMap>() {{ put( - Constants.EXPECT_KEYWORD, + Constants.EXPECT_KEYWORD, Arrays.asList( Constants.NUMERIC_KEYWORD, Constants.ALPHANUMERIC_LITERAL_KEYWORD, @@ -327,7 +330,7 @@ public class Keywords { ); }}, KeywordAction.EXPECTED_VALUE - ) + ); ); //--------------------------------LESS THAN EQUAL TO SIGN @@ -356,7 +359,7 @@ public class Keywords { ); }}, KeywordAction.EXPECTED_VALUE - ) + ); ); //--------------------------------NUMERIC @@ -366,7 +369,7 @@ public class Keywords { Arrays.asList(), new HashMap>() {{ put( - Constants.EXPECT_KEYWORD, + Constants.EXPECT_KEYWORD, Arrays.asList( Constants.ALPHANUMERIC_LITERAL_KEYWORD, Constants.NUMERIC_LITERAL_KEYWORD, @@ -376,7 +379,7 @@ public class Keywords { ); }}, KeywordAction.EXPECTED_VALUE - ) + ); ); //--------------------------------PARENTHESIS-ENCLOSED @@ -422,7 +425,7 @@ public class Keywords { ); }}, KeywordAction.COBOL_STATEMENT - ) + ); ); //--------------------------------ALPHANUMERIC LITERAL @@ -470,7 +473,7 @@ public class Keywords { ); }}, KeywordAction.FIELDNAME - ) + ); ); //--------------------------------NUMERIC LITERAL @@ -497,7 +500,7 @@ public class Keywords { ); }}, KeywordAction.FIELDNAME - ) + ); ); //--------------------------------COBOL TOKEN @@ -528,7 +531,7 @@ public class Keywords { Constants.QUALIFIED_FIELD_NAME ), KeywordAction.COBOL_STATEMENT - ) + ); ); //--------------------------------BOOLEAN VALUE @@ -545,7 +548,7 @@ public class Keywords { Constants.VERIFY_KEYWORD ), KeywordAction.BOOLEAN_COMPARE - ) + ); ); //--------------------------------BEFORE EACH @@ -553,11 +556,9 @@ public class Keywords { Constants.BEFORE_EACH_TOKEN, new Keyword( Constants.BEFORE_EACH_TOKEN, - Arrays.asList( - Constants.END_BEFORE_TOKEN - ), + Arrays.asList(Constants.END_BEFORE_TOKEN), KeywordAction.NONE - ) + ); ); //--------------------------------END BEFORE @@ -573,7 +574,7 @@ public class Keywords { Constants.MOCK_KEYWORD ), KeywordAction.NONE - ) + ); ); //--------------------------------AFTER EACH @@ -583,7 +584,7 @@ public class Keywords { Constants.AFTER_EACH_TOKEN, Arrays.asList(Constants.END_AFTER_TOKEN), KeywordAction.NONE - ) + ); ); //--------------------------------END AFTER @@ -600,7 +601,7 @@ public class Keywords { Constants.MOCK_KEYWORD ), KeywordAction.NONE - ) + ); ); //--------------------------------QUALIFIED FIELD NAME @@ -615,13 +616,11 @@ public class Keywords { new HashMap>() {{ put( Constants.EXPECT_KEYWORD, - Arrays.asList( - Constants.FIELDNAME_KEYWORD - ) + Arrays.asList(Constants.FIELDNAME_KEYWORD) ); }}, KeywordAction.NONE - ) + ); ); //TODO: Remove hyphen keyword option? Backwards compatibility @@ -632,7 +631,7 @@ public class Keywords { Constants.BEFORE_EACH_TOKEN_HYPHEN, Arrays.asList(Constants.END_BEFORE_TOKEN), KeywordAction.NONE - ) + ); ); //--------------------------------AFTER-EACH @@ -642,7 +641,7 @@ public class Keywords { Constants.AFTER_EACH_TOKEN_HYPHEN, Arrays.asList(Constants.END_AFTER_TOKEN), KeywordAction.NONE - ) + ); ); //--------------------------------MOCK @@ -654,13 +653,11 @@ public class Keywords { new HashMap>() {{ put( Constants.MOCK_KEYWORD, - Arrays.asList( - Constants.MOCK_TYPE - ) + Arrays.asList(Constants.MOCK_TYPE) ); }}, KeywordAction.NONE - ) + ); ); //--------------------------------END MOCK @@ -681,7 +678,7 @@ public class Keywords { Constants.EXPECT_KEYWORD ), KeywordAction.NONE - ) + ); ); //--------------------------------MOCK TYPE @@ -709,7 +706,7 @@ public class Keywords { ); }}, KeywordAction.NONE - ) + ); ); //--------------------------------USING @@ -744,7 +741,7 @@ public class Keywords { ); }}, KeywordAction.NONE - ) + ); ); //--------------------------------BY REFERENCE @@ -764,7 +761,7 @@ public class Keywords { ); }}, KeywordAction.NONE - ) + ); ); //--------------------------------BY CONTENT @@ -784,7 +781,7 @@ public class Keywords { ); }}, KeywordAction.NONE - ) + ); ); //--------------------------------BY VALUE @@ -804,7 +801,7 @@ public class Keywords { ); }}, KeywordAction.NONE - ) + ); ); //--------------------------------VERIFY @@ -820,7 +817,7 @@ public class Keywords { ); }}, KeywordAction.ACTUAL_FIELDNAME - ) + ); ); //--------------------------------NEVER HAPPENED @@ -837,7 +834,7 @@ public class Keywords { Constants.EXPECT_KEYWORD ), KeywordAction.NONE - ) + ); ); //--------------------------------HAPPENED @@ -859,7 +856,7 @@ public class Keywords { ); }}, KeywordAction.NONE - ) + ); ); //--------------------------------ONCE @@ -876,7 +873,7 @@ public class Keywords { Constants.EXPECT_KEYWORD ), KeywordAction.NONE - ) + ); ); //--------------------------------AT LEAST @@ -895,7 +892,7 @@ public class Keywords { ); }}, KeywordAction.NONE - ) + ); ); //--------------------------------NO MORE THAN @@ -914,7 +911,7 @@ public class Keywords { ); }}, KeywordAction.NONE - ) + ); ); //--------------------------------TIME @@ -931,7 +928,7 @@ public class Keywords { Constants.EXPECT_KEYWORD ), KeywordAction.NONE - ) + ); ); //--------------------------------TIMES @@ -948,7 +945,7 @@ public class Keywords { Constants.EXPECT_KEYWORD ), KeywordAction.NONE - ) + ); ); mockTypes = Arrays.asList(Constants.SECTION_TOKEN, Constants.PARAGRAPH_TOKEN, Constants.PARA_TOKEN, Constants.CALL_TOKEN); From 6a87d63a1d69e7e82913537ac68ed8d37a05b893 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20M=C3=B8nster?= Date: Wed, 15 Feb 2023 12:49:53 +0100 Subject: [PATCH 020/180] Mistakes fixed MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Benjamin Mønster --- .../features/testSuiteParser/Keywords.java | 80 +++++++++---------- 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Keywords.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Keywords.java index d6c313d8..8e9192d2 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Keywords.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Keywords.java @@ -26,7 +26,7 @@ public class Keywords { Constants.TESTSUITE_KEYWORD, Arrays.asList(Constants.ALPHANUMERIC_LITERAL_KEYWORD), KeywordAction.TESTSUITE_NAME - ); + ) ); //--------------------------------TESTCASE @@ -35,7 +35,7 @@ public class Keywords { new Keyword(Constants.TESTCASE_KEYWORD, Arrays.asList(Constants.ALPHANUMERIC_LITERAL_KEYWORD), KeywordAction.NEW_TESTCASE - ); + ) ); //--------------------------------EXPECT @@ -51,7 +51,7 @@ public class Keywords { ); }}, KeywordAction.ACTUAL_FIELDNAME - ); + ) ); //--------------------------------FIELD NAME @@ -121,7 +121,7 @@ public class Keywords { ); }}, KeywordAction.FIELDNAME - ); + ) ); //--------------------------------NOT @@ -171,7 +171,7 @@ public class Keywords { ); }}, KeywordAction.REVERSE_LOGIC - ); + ) ); //--------------------------------TO BE @@ -193,7 +193,7 @@ public class Keywords { ); }}, KeywordAction.EXPECTED_VALUE - ); + ) ); //--------------------------------TO EQUAL @@ -215,7 +215,7 @@ public class Keywords { ); }}, KeywordAction.EXPECTED_VALUE - ); + ) ); //--------------------------------EQUAL SIGN @@ -243,7 +243,7 @@ public class Keywords { ); }}, KeywordAction.EXPECTED_VALUE - ); + ) ); //--------------------------------GREATER THAN SIGN @@ -272,7 +272,7 @@ public class Keywords { ); }}, KeywordAction.EXPECTED_VALUE - ); + ) ); //--------------------------------GREATER THAN EQUAL TO SIGN @@ -301,7 +301,7 @@ public class Keywords { ); }}, KeywordAction.EXPECTED_VALUE - ); + ) ); //--------------------------------LESS THAN SIGN @@ -330,7 +330,7 @@ public class Keywords { ); }}, KeywordAction.EXPECTED_VALUE - ); + ) ); //--------------------------------LESS THAN EQUAL TO SIGN @@ -359,7 +359,7 @@ public class Keywords { ); }}, KeywordAction.EXPECTED_VALUE - ); + ) ); //--------------------------------NUMERIC @@ -379,7 +379,7 @@ public class Keywords { ); }}, KeywordAction.EXPECTED_VALUE - ); + ) ); //--------------------------------PARENTHESIS-ENCLOSED @@ -425,7 +425,7 @@ public class Keywords { ); }}, KeywordAction.COBOL_STATEMENT - ); + ) ); //--------------------------------ALPHANUMERIC LITERAL @@ -473,7 +473,7 @@ public class Keywords { ); }}, KeywordAction.FIELDNAME - ); + ) ); //--------------------------------NUMERIC LITERAL @@ -500,7 +500,7 @@ public class Keywords { ); }}, KeywordAction.FIELDNAME - ); + ) ); //--------------------------------COBOL TOKEN @@ -531,7 +531,7 @@ public class Keywords { Constants.QUALIFIED_FIELD_NAME ), KeywordAction.COBOL_STATEMENT - ); + ) ); //--------------------------------BOOLEAN VALUE @@ -548,7 +548,7 @@ public class Keywords { Constants.VERIFY_KEYWORD ), KeywordAction.BOOLEAN_COMPARE - ); + ) ); //--------------------------------BEFORE EACH @@ -558,7 +558,7 @@ public class Keywords { Constants.BEFORE_EACH_TOKEN, Arrays.asList(Constants.END_BEFORE_TOKEN), KeywordAction.NONE - ); + ) ); //--------------------------------END BEFORE @@ -574,7 +574,7 @@ public class Keywords { Constants.MOCK_KEYWORD ), KeywordAction.NONE - ); + ) ); //--------------------------------AFTER EACH @@ -584,7 +584,7 @@ public class Keywords { Constants.AFTER_EACH_TOKEN, Arrays.asList(Constants.END_AFTER_TOKEN), KeywordAction.NONE - ); + ) ); //--------------------------------END AFTER @@ -601,7 +601,7 @@ public class Keywords { Constants.MOCK_KEYWORD ), KeywordAction.NONE - ); + ) ); //--------------------------------QUALIFIED FIELD NAME @@ -620,7 +620,7 @@ public class Keywords { ); }}, KeywordAction.NONE - ); + ) ); //TODO: Remove hyphen keyword option? Backwards compatibility @@ -631,7 +631,7 @@ public class Keywords { Constants.BEFORE_EACH_TOKEN_HYPHEN, Arrays.asList(Constants.END_BEFORE_TOKEN), KeywordAction.NONE - ); + ) ); //--------------------------------AFTER-EACH @@ -641,7 +641,7 @@ public class Keywords { Constants.AFTER_EACH_TOKEN_HYPHEN, Arrays.asList(Constants.END_AFTER_TOKEN), KeywordAction.NONE - ); + ) ); //--------------------------------MOCK @@ -657,7 +657,7 @@ public class Keywords { ); }}, KeywordAction.NONE - ); + ) ); //--------------------------------END MOCK @@ -678,7 +678,7 @@ public class Keywords { Constants.EXPECT_KEYWORD ), KeywordAction.NONE - ); + ) ); //--------------------------------MOCK TYPE @@ -706,7 +706,7 @@ public class Keywords { ); }}, KeywordAction.NONE - ); + ) ); //--------------------------------USING @@ -741,7 +741,7 @@ public class Keywords { ); }}, KeywordAction.NONE - ); + ) ); //--------------------------------BY REFERENCE @@ -761,7 +761,7 @@ public class Keywords { ); }}, KeywordAction.NONE - ); + ) ); //--------------------------------BY CONTENT @@ -781,7 +781,7 @@ public class Keywords { ); }}, KeywordAction.NONE - ); + ) ); //--------------------------------BY VALUE @@ -801,7 +801,7 @@ public class Keywords { ); }}, KeywordAction.NONE - ); + ) ); //--------------------------------VERIFY @@ -817,7 +817,7 @@ public class Keywords { ); }}, KeywordAction.ACTUAL_FIELDNAME - ); + ) ); //--------------------------------NEVER HAPPENED @@ -834,7 +834,7 @@ public class Keywords { Constants.EXPECT_KEYWORD ), KeywordAction.NONE - ); + ) ); //--------------------------------HAPPENED @@ -856,7 +856,7 @@ public class Keywords { ); }}, KeywordAction.NONE - ); + ) ); //--------------------------------ONCE @@ -873,7 +873,7 @@ public class Keywords { Constants.EXPECT_KEYWORD ), KeywordAction.NONE - ); + ) ); //--------------------------------AT LEAST @@ -892,7 +892,7 @@ public class Keywords { ); }}, KeywordAction.NONE - ); + ) ); //--------------------------------NO MORE THAN @@ -911,7 +911,7 @@ public class Keywords { ); }}, KeywordAction.NONE - ); + ) ); //--------------------------------TIME @@ -928,7 +928,7 @@ public class Keywords { Constants.EXPECT_KEYWORD ), KeywordAction.NONE - ); + ) ); //--------------------------------TIMES @@ -945,7 +945,7 @@ public class Keywords { Constants.EXPECT_KEYWORD ), KeywordAction.NONE - ); + ) ); mockTypes = Arrays.asList(Constants.SECTION_TOKEN, Constants.PARAGRAPH_TOKEN, Constants.PARA_TOKEN, Constants.CALL_TOKEN); From 6041cc81c239a616fde1d710c5d01a27ce426ffb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20M=C3=B8nster?= Date: Wed, 15 Feb 2023 12:51:22 +0100 Subject: [PATCH 021/180] Overlooked one mistake MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Benjamin Mønster --- .../cobolcheck/features/testSuiteParser/Keywords.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Keywords.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Keywords.java index 8e9192d2..7f69325d 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Keywords.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Keywords.java @@ -151,7 +151,7 @@ public class Keywords { ); }}, KeywordAction.REVERSE_LOGIC - ); + ) ); //--------------------------------NOT EQUAL SIGN From 3520e6dcd033e10ca236b02a37ec37a6bee8290b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20M=C3=B8nster?= Date: Wed, 15 Feb 2023 13:01:13 +0100 Subject: [PATCH 022/180] Removed irrelevant UT. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Benjamin Mønster --- .../openmainframeproject/cobolcheck/PathHelperTest.java | 9 --------- 1 file changed, 9 deletions(-) diff --git a/src/test/java/org/openmainframeproject/cobolcheck/PathHelperTest.java b/src/test/java/org/openmainframeproject/cobolcheck/PathHelperTest.java index 71ad716e..43260d1e 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/PathHelperTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/PathHelperTest.java @@ -17,20 +17,11 @@ public class PathHelperTest { - @BeforeAll static void oneTimeSetup() { Config.load("testconfig.properties"); } - - @Test - void test_source_out_path_exists() { - String path = PathHelper.getTestSourceOutPath(); - File file = new File(path); - assertTrue(file.exists()); - } - @Test void finds_correct_file_suffix() { String[] suffixes = {".cbl", ".cob", ".txt", ".java"}; From 66bcebea740ab3e028730b8c67298a2e3b37e545 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20M=C3=B8nster?= Date: Wed, 15 Feb 2023 13:03:57 +0100 Subject: [PATCH 023/180] Remade approval-test-expected file. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Benjamin Mønster --- approval-test-expected.txt | 235 +++++++++++++++++++++++++++++++++++++ 1 file changed, 235 insertions(+) create mode 100644 approval-test-expected.txt diff --git a/approval-test-expected.txt b/approval-test-expected.txt new file mode 100644 index 00000000..018e799c --- /dev/null +++ b/approval-test-expected.txt @@ -0,0 +1,235 @@ +TESTSUITE: +Verify Cobol Check handles numeric relations properly + PASS: 1. Equal sign with literal compare +**** FAIL: 2. Equal sign with literal compare (should fail) + EXPECTED +00000000025.7500000, WAS +00000000025.7400000 + PASS: 3. Not equal sign with literal compare +**** FAIL: 4. Not equal sign with literal compare (should fail) + EXPECTED +00000000025.7400000, WAS +00000000025.7400000 + PASS: 5. Not-equal sign with literal compare +**** FAIL: 6. Not-equal sign with literal compare (should fail) + EXPECTED +00000000013.6000000, WAS +00000000013.6000000 + PASS: 7. Not not-equal sign with literal compare +**** FAIL: 8. Not not-equal sign with literal compare (should fail) + EXPECTED +00000000013.6000000, WAS +00000000013.7000000 + PASS: 9. Equal sign with ield compare +**** FAIL: 10. Equal sign with field compare (should fail) + EXPECTED +00000000025.7500000, WAS +00000000025.7400000 + PASS: 11. Not equal sign with field compare +**** FAIL: 12. Not equal sign with field compare (should fail) + EXPECTED +00000000025.7400000, WAS +00000000025.7400000 + PASS: 13. Not-equal sign with field compare +**** FAIL: 14. Not-equal sign with field compare (should fail) + EXPECTED +00000000025.7400000, WAS +00000000025.7400000 + PASS: 15. Not not-equal sign with field compare +**** FAIL: 16. Not not-equal sign with field compare (should fail) + EXPECTED +00000000025.7400000, WAS +00000000025.7500000 + PASS: 17. Less-than sign with literal compare +**** FAIL: 18. Less-than sign with literal compare (should fail) + EXPECTED +00000000018.0660000, WAS +00000000018.0670000 + PASS: 19. Not less-than sign with literal compare +**** FAIL: 20. Not less-than sign with literal compare (should fail) + EXPECTED +00000000018.0670000, WAS +00000000018.0660000 + PASS: 21. Less-than sign with field compare +**** FAIL: 22. Less-than sign with field compare (should fail) + EXPECTED +00000000416.0720000, WAS +00000000416.0720000 + PASS: 23. Not less-than sign with field compare +**** FAIL: 24. Not less-than sign with field compare (should fail) + EXPECTED +00000000416.0720000, WAS +00000000416.0710000 + PASS: 25. Greater-than sign with literal compare +**** FAIL: 26. Greater-than sign with literal compare (should fail) + EXPECTED +00000000010.0000000, WAS +00000000009.8050000 + PASS: 27. Not greater-than sign with literal compare +**** FAIL: 28. Not greater-than sign with literal compare (should fail) + EXPECTED +00000000107.7010000, WAS +00000000107.7020000 + PASS: 29. Greater-than sign with field compare +**** FAIL: 30. Greater-than sign with field compare (should fail) + EXPECTED +00000001766.0314400, WAS +00000001766.0314300 + PASS: 31. Not greater-than sign with field to field compare +**** FAIL: 32. Not greater-than sign with field compare (should fail) + EXPECTED +00000001766.0314400, WAS +00000001766.0314500 + PASS: 33. Greater-than-or-equal-to sign with literal compare when greater + PASS: 34. Greater-than-or-equal-to sign with literal compare when equal +**** FAIL: 35. Greater-than-or-equal-to sign with literal compare (should fail) + EXPECTED +00000000010.0000000, WAS +00000000009.8050000 + PASS: 36. Not greater-than-or-equal-to sign with literal compare when less +**** FAIL: 37. Not greater-than-or-equal-to sign with literal compare when equal (should fail) + EXPECTED +00000000018.0670000, WAS +00000000018.0670000 +**** FAIL: 38. Greater-than-or-equal-to sign with literal compare when greater (should fail) + EXPECTED +00000000013.4400000, WAS +00000000013.4500000 + PASS: 39. Greater-than-or-equal-to-sign with field compare when equal + PASS: 40. Greater-than-or-equal-to-sign with field compare when greater +**** FAIL: 41. Greater-than-or-equal-to-sign with field compare when less (should fail) + EXPECTED +00000000475.0620000, WAS +00000000475.0610000 + PASS: 42. Not greater-than-or-equal-to-sign with field compare when less +**** FAIL: 43. Not greater-than-or-equal-to-sign with field compare when equal (should fail) + EXPECTED +00000000475.0620000, WAS +00000000475.0620000 +**** FAIL: 44. Not greater-than-or-equal-to-sign with field compare when greater (should fail) + EXPECTED +00000000475.0620000, WAS +00000000475.0630000 + PASS: 45. Less-than-or-equal-to-sign with field compare when equal + PASS: 46. Less-than-or-equal-to-sign with field compare when less +**** FAIL: 47. Less-than-or-equal-to-sign with field compare when greater (should fail) + EXPECTED +00000000475.0620000, WAS +00000000475.0630000 + PASS: 48. Not less-than-or-equal-to-sign with field compare when greater +**** FAIL: 49. Not greater-than-or-equal-to-sign with field compare when equal (should fail) + EXPECTED +00000000475.0620000, WAS +00000000475.0620000 +**** FAIL: 50. Not greater-than-or-equal-to-sign with field compare when less (should fail) + EXPECTED +00000000475.0630000, WAS +00000000475.0620000 + PASS: 51. Display Numeric field equals literal + + 51 TEST CASES WERE EXECUTED + 26 PASSED + 25 FAILED +================================================= +TESTSUITE: +Tests of alphanumeric expectations + PASS: 1. Equality with an alphanumeric literal using TO BE + PASS: 2. Equality with an alphanumeric literal using TO EQUAL + PASS: 3. Equality with an alphanumeric literal using '=' + PASS: 4. Equality with an alphanumeric literal and reference modification + PASS: 5. Non-equality with an alphanumeric literal using TO BE + PASS: 6. Non-equality with an alphanumeric literal using TO EQUAL + PASS: 7. Non-equality with an alphanumeric literal using '!=' + PASS: 8. Non-equality with an alphanumeric literal and reference modification + PASS: 9. Greater-than sign with an alphanumeric literal + PASS: 10. Less-than sign with an alphanumeric literal + PASS: 11. Not greater-than sign with an alphanumeric literal + PASS: 12. Not less-than sign with an alphanumeric literal + PASS: 13. Display numeric + + 13 TEST CASES WERE EXECUTED + 13 PASSED + 0 FAILED +================================================= +TESTSUITE: +Greeting includes the user name when it is provided +**** FAIL: 1. When message type is greeting it returns Hello, James! + EXPECTED , WAS +**** FAIL: 2. When message type is farewell it returns Goodbye, James! + EXPECTED , WAS + PASS: 3. User name for greeting and farewell are consistent +TESTSUITE: +Greeting returns the appropriate message based on message type +**** FAIL: 4. When message type is greeting it returns 'Hello, World!' + EXPECTED , WAS + PASS: 5. try numerical compare +**** FAIL: 6. try 88 level compare + EXPECTED , WAS +**** FAIL: 7. When message type is farewell it returns See you later, alligator! + EXPECTED , WAS +**** FAIL: 8. Message type greeting is not true + EXPECTED , WAS + + 8 TEST CASES WERE EXECUTED + 2 PASSED + 6 FAILED +================================================= +TESTSUITE: +Tests for a sequential file copy program + PASS: 1. Output fields are populated from the input record + PASS: 2. Output fields are populated from the input record + + 2 TEST CASES WERE EXECUTED + 2 PASSED + 0 FAILED +================================================= +TESTSUITE: +Before and after tests 1 + PASS: 1. Before sets value + PASS: 2. After sets value + PASS: 3. Before happens before Testcase + PASS: 4. After happens after Testcase (part 1) + PASS: 5. After happens after Testcase (part 2) +TESTSUITE: +Before and after tests 2 + PASS: 6. VERIFY EXACT 0 ACCESSES TO SECTION 000-START + PASS: 7. VERIFY EXACT 0 ACCESSES TO SECTION 100-WELCOME + PASS: 8. Only global mocks apply in before/after (part 1) + PASS: 9. Only global mocks apply in before/after (part 1) + PASS: 10. Only global mocks apply in before/after (part 1) + PASS: 11. Only global mocks apply in before/after (part 2) + PASS: 12. Only global mocks apply in before/after (part 2) + PASS: 13. Only global mocks apply in before/after (part 2) + PASS: 14. Only global mocks apply in before/after (part 3) + PASS: 15. Only global mocks apply in before/after (part 3) + PASS: 16. Only global mocks apply in before/after (part 3) +TESTSUITE: +Before and after tests 3 + PASS: 17. Before proceeds after from last testcase (part 1) + PASS: 18. Before proceeds after from last testcase (part 2) +TESTSUITE: +General tests + PASS: 19. Welcome section performs as intended + PASS: 20. Welcome section performs as intended + PASS: 21. Goodbye section performs as intended + PASS: 22. Goodbye section performs as intended + PASS: 23. Change-1 changes hello to bye + PASS: 24. Change-1 changes hello to bye + PASS: 25. Change-1 changes bye to hello + PASS: 26. Change-1 changes bye to hello + PASS: 27. Change-2 changes hi to see you + PASS: 28. Change-2 changes hi to see you + PASS: 29. Change-2 changes see you to hi + PASS: 30. Change-2 changes see you to hi + PASS: 31. Switches values + PASS: 32. Switches values +TESTSUITE: +Mock Call statements test + PASS: 33. Simple call mock works + PASS: 34. Simple call mock works + PASS: 35. VERIFY EXACT 1 ACCESS TO CALL 'PROG1' + PASS: 36. Simple global call mock works + PASS: 37. Simple global call mock works + PASS: 38. VERIFY EXACT 1 ACCESS TO CALL 'PROG1' + PASS: 39. Call mock with argument works + PASS: 40. Call mock with argument works + PASS: 41. VERIFY EXACT 1 ACCESS TO CALL VALUE-2 + PASS: 42. Call mock with content reference for arguments work + PASS: 43. Call mock with content reference for arguments work + PASS: 44. Call mock with content reference for arguments work + PASS: 45. VERIFY EXACT 2 ACCESSES TO CALL 'PROG3' + PASS: 46. Paragraph mock is called and call mock is ignored + PASS: 47. Paragraph mock is called and call mock is ignored + PASS: 48. Paragraph mock is called and call mock is ignored + PASS: 49. VERIFY EXACT 1 ACCESS TO PARAGRAPH 800-MAKE-CALL + PASS: 50. VERIFY EXACT 0 ACCESSES TO CALL 'PROG3' +**** FAIL: 51. Global call mock is not overwritten by local call mock (Should fail) + EXPECTED , WAS +TESTSUITE: +Mock Sections And Paragraphs + PASS: 52. Global mock behaves as intended + PASS: 53. Global mock behaves as intended + PASS: 54. VERIFY EXACT 1 ACCESS TO SECTION 000-START + PASS: 55. Local mock overwrites global mock + PASS: 56. Local mock overwrites global mock + PASS: 57. VERIFY AT LEAST 2 ACCESSES TO SECTION 000-START + PASS: 58. Multiple local mocks behaves as intended (First Verify should fail) + PASS: 59. Multiple local mocks behaves as intended (First Verify should fail) +**** FAIL: 60. VERIFY ACCESSES TO SECTION 000-START + EXPECTED EXACT 5 ACCESSES, WAS 2 + PASS: 61. VERIFY NO MORE THAN 10 ACCESSES TO SECTION 100-WELCOME + PASS: 62. VERIFY EXACT 0 ACCESSES TO PARAGRAPH 500-SWITCH + PASS: 63. Empty local mock makes section do nothing + PASS: 64. Empty local mock makes section do nothing + PASS: 65. VERIFY EXACT 1 ACCESS TO PARAGRAPH 500-SWITCH + PASS: 66. Local and global mocks can be used together + PASS: 67. Local and global mocks can be used together + PASS: 68. If no local or global mock run source code + PASS: 69. If no local or global mock run source code + PASS: 70. Global paragraph mock works + PASS: 71. Global paragraph mock works + + 71 TEST CASES WERE EXECUTED + 69 PASSED + 2 FAILED +================================================= +TESTSUITE: +Verify Cobol Check handles decimal is comma properly + PASS: 1. simple expect for number + PASS: 2. simple expect for number + PASS: 3. VERIFY EXACT 1 ACCESS TO PARAGRAPH 100-ASSIGN + + 3 TEST CASES WERE EXECUTED + 3 PASSED + 0 FAILED +================================================= \ No newline at end of file From 9de8d3b191daf1bf8321397a969ed93a4619c4c4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20M=C3=B8nster?= Date: Wed, 15 Feb 2023 13:27:47 +0100 Subject: [PATCH 024/180] Removed VerifyAction from every single push MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Benjamin Mønster --- .github/workflows/VerifyAction.yml | 3 --- 1 file changed, 3 deletions(-) diff --git a/.github/workflows/VerifyAction.yml b/.github/workflows/VerifyAction.yml index 9daf0047..5839dc88 100644 --- a/.github/workflows/VerifyAction.yml +++ b/.github/workflows/VerifyAction.yml @@ -1,9 +1,6 @@ name: VerifyAction on: - push: - branches: - - '*' pull_request: branches: [ main,Developer ] From 07c2466ce907137f07034c5a6b974587dff63ab8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20M=C3=B8nster?= Date: Wed, 15 Feb 2023 13:37:13 +0100 Subject: [PATCH 025/180] Updated action versions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Benjamin Mønster --- .github/workflows/DeployExtension.yml | 4 ++-- .github/workflows/VSCodeBuild.yml | 2 +- .github/workflows/VerifyAction.yml | 2 +- 3 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/DeployExtension.yml b/.github/workflows/DeployExtension.yml index 9b235f08..8acb5da1 100644 --- a/.github/workflows/DeployExtension.yml +++ b/.github/workflows/DeployExtension.yml @@ -14,8 +14,8 @@ jobs: working-directory: ./vs code extension environment: production steps: - - uses: actions/checkout@v2 - - uses: actions/setup-node@v1 + - uses: actions/checkout@v3 + - uses: actions/setup-node@v2 with: node-version: 16 - run: npm install diff --git a/.github/workflows/VSCodeBuild.yml b/.github/workflows/VSCodeBuild.yml index 0e0b4f59..b66dbfff 100644 --- a/.github/workflows/VSCodeBuild.yml +++ b/.github/workflows/VSCodeBuild.yml @@ -17,7 +17,7 @@ jobs: working-directory: ./vs code extension environment: production steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: Use Node.js uses: actions/setup-node@v2 with: diff --git a/.github/workflows/VerifyAction.yml b/.github/workflows/VerifyAction.yml index 5839dc88..93c342d4 100644 --- a/.github/workflows/VerifyAction.yml +++ b/.github/workflows/VerifyAction.yml @@ -14,7 +14,7 @@ jobs: java-version: [8, 11] steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: set up JDK 8 uses: actions/setup-java@v2 with: From 2f04d4ea41ef96d802371cb1e5141932bfc77f6f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Benjamin=20M=C3=B8nster?= Date: Wed, 15 Feb 2023 13:44:47 +0100 Subject: [PATCH 026/180] GitHub Actions Java Version Bump MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Benjamin Mønster --- .github/workflows/VerifyAction.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/VerifyAction.yml b/.github/workflows/VerifyAction.yml index 93c342d4..a7b34186 100644 --- a/.github/workflows/VerifyAction.yml +++ b/.github/workflows/VerifyAction.yml @@ -16,7 +16,7 @@ jobs: steps: - uses: actions/checkout@v3 - name: set up JDK 8 - uses: actions/setup-java@v2 + uses: actions/setup-java@v3 with: java-version: ${{ matrix.java-version }} distribution: 'adopt' From 1dce0726b6b9a57bbe17231f42752b466529872f Mon Sep 17 00:00:00 2001 From: Brian Wildt Date: Tue, 28 Feb 2023 14:48:49 +0100 Subject: [PATCH 027/180] use parentheses as seperator --- .gitignore | 3 + .../testSuiteParser/KeywordExtractor.java | 83 +++++++++++-------- .../cobolcheck/KeywordExtractorTest.java | 9 ++ 3 files changed, 60 insertions(+), 35 deletions(-) diff --git a/.gitignore b/.gitignore index 1fc039d4..ab62cfa2 100644 --- a/.gitignore +++ b/.gitignore @@ -120,3 +120,6 @@ nb-configuration.xml ## OS X ############################## .DS_Store + +/zapp.json +.gitignore diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/KeywordExtractor.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/KeywordExtractor.java index a15bd202..00968630 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/KeywordExtractor.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/KeywordExtractor.java @@ -40,6 +40,7 @@ public List extractTokensFrom(String sourceLine) { buffer = new StringBuilder(); int tokenOffset = 0; sourceLine = sourceLine.trim(); + char previousCharacter = SPACE; while (tokenOffset < sourceLine.length()) { char currentCharacter = sourceLine.charAt(tokenOffset); if (isQuote(currentCharacter)) { @@ -58,8 +59,11 @@ public List extractTokensFrom(String sourceLine) { } } else if (currentCharacter == '(' && !openQuote){ - openParenthesis = true; + if (previousCharacter != SPACE){ + buffer = addTokenAndClearBuffer(buffer, tokens); + } buffer.append(currentCharacter); + openParenthesis = true; } else if (currentCharacter == ')' && !openQuote){ openParenthesis = false; @@ -86,44 +90,12 @@ else if (openParenthesis && !openQuote) } if (currentCharacter == SPACE) { - processingNumericLiteral = false; - if (openQuote) { - buffer.append(SPACE); - } else { - if (multiWordTokens.containsKey(buffer.toString().toUpperCase(Locale.ROOT))) { - nextExpectedTokens = multiWordTokens.get(buffer.toString().toUpperCase(Locale.ROOT)); - buffer.append(SPACE); - - int startOfLookahead = tokenOffset + 1; - for (String expectedToken : nextExpectedTokens) { - int endOfLookahead = startOfLookahead + expectedToken.length(); - if (sourceLine.length() >= endOfLookahead) { - String temp = sourceLine.substring(startOfLookahead, endOfLookahead); - if (expectedToken.equalsIgnoreCase(temp) - && (endOfLookahead == sourceLine.length() - || sourceLine.charAt(endOfLookahead) == SPACE)) { - buffer.append(expectedToken); - tokenOffset += expectedToken.length() + 1; - buffer.append(SPACE); - startOfLookahead = tokenOffset + 1; - } - } - - } - buffer.deleteCharAt(buffer.length() - 1); - buffer = addTokenAndClearBuffer(buffer, tokens); - nextExpectedTokens = new ArrayList<>(); - } else { - nextExpectedTokens = new ArrayList<>(); - if (buffer.length() > 0) { - buffer = addTokenAndClearBuffer(buffer, tokens); - } - } - } + tokenOffset = handleEndOfWord(sourceLine, tokens, tokenOffset); } else{ buffer.append(currentCharacter); } } + previousCharacter = currentCharacter; tokenOffset += 1; } if (buffer.length() > 0) { @@ -132,6 +104,44 @@ else if (openParenthesis && !openQuote) return tokens; } + private int handleEndOfWord(String sourceLine, List tokens, int tokenOffset) { + processingNumericLiteral = false; + if (openQuote) { + buffer.append(SPACE); + } else { + if (multiWordTokens.containsKey(buffer.toString().toUpperCase(Locale.ROOT))) { + nextExpectedTokens = multiWordTokens.get(buffer.toString().toUpperCase(Locale.ROOT)); + buffer.append(SPACE); + + int startOfLookahead = tokenOffset + 1; + for (String expectedToken : nextExpectedTokens) { + int endOfLookahead = startOfLookahead + expectedToken.length(); + if (sourceLine.length() >= endOfLookahead) { + String temp = sourceLine.substring(startOfLookahead, endOfLookahead); + if (expectedToken.equalsIgnoreCase(temp) + && (endOfLookahead == sourceLine.length() + || sourceLine.charAt(endOfLookahead) == SPACE)) { + buffer.append(expectedToken); + tokenOffset += expectedToken.length() + 1; + buffer.append(SPACE); + startOfLookahead = tokenOffset + 1; + } + } + + } + buffer.deleteCharAt(buffer.length() - 1); + buffer = addTokenAndClearBuffer(buffer, tokens); + nextExpectedTokens = new ArrayList<>(); + } else { + nextExpectedTokens = new ArrayList<>(); + if (buffer.length() > 0) { + buffer = addTokenAndClearBuffer(buffer, tokens); + } + } + } + return tokenOffset; + } + public boolean tokenListEndsDuringMultiToken(List tokens){ if (tokens == null || tokens.isEmpty()) return false; @@ -141,6 +151,9 @@ public boolean tokenListEndsDuringMultiToken(List tokens){ return false; } + public void handleEndOfWord(){ + + } /** diff --git a/src/test/java/org/openmainframeproject/cobolcheck/KeywordExtractorTest.java b/src/test/java/org/openmainframeproject/cobolcheck/KeywordExtractorTest.java index 6981d758..874316ab 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/KeywordExtractorTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/KeywordExtractorTest.java @@ -52,6 +52,15 @@ public void given_a_two_word_keyword_it_treats_the_keyword_as_a_single_token() { assertEquals("TO BE", tokens.get(3)); assertEquals(4, tokens.size()); } + @Test + + public void parentheses_acts_as_seperator() { + tokens = extractor.extractTokensFrom("VARIABLE(IDX) (START:LENGTH)"); + assertEquals("VARIABLE", tokens.get(0)); + assertEquals("(IDX)", tokens.get(1)); + assertEquals("(START:LENGTH)", tokens.get(2)); + assertEquals(3, tokens.size()); + } @Test public void given_the_first_word_in_a_two_word_keyword_and_the_second_token_matches_the_expected_second_word_it_knows_it_is_not_a_match() { From 67419faf39cf306afaaa7a21db3e29fd045827ee Mon Sep 17 00:00:00 2001 From: Brian Wildt Date: Tue, 28 Feb 2023 15:31:51 +0100 Subject: [PATCH 028/180] remove gitignore changes --- .gitignore | 3 --- 1 file changed, 3 deletions(-) diff --git a/.gitignore b/.gitignore index ab62cfa2..1fc039d4 100644 --- a/.gitignore +++ b/.gitignore @@ -120,6 +120,3 @@ nb-configuration.xml ## OS X ############################## .DS_Store - -/zapp.json -.gitignore From 66b155d71b4c3b16e42e2fcc0a47eacff0575358 Mon Sep 17 00:00:00 2001 From: Brian Wildt Date: Tue, 28 Feb 2023 15:42:59 +0100 Subject: [PATCH 029/180] Signed-off-by: Brian Wildt --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index de8ccfb2..fe5b0108 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ [![Build Status](https://travis-ci.com/neopragma/cobol-check.svg?branch=main)](https://travis-ci.com/neopragma/cobol-check) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=neopragma_cobol-check&metric=alert_status)](https://sonarcloud.io/dashboard?id=neopragma_cobol-check) Cobol Check provides fine-grained unit testing/checking for Cobol at the same conceptual level of detail as unit testing frameworks for other languages, such as Python, Ruby, C#, and Java. - + ## Feature overview - Fine-grained assertions - Stubs and mocks From 5da524dea59b936ab783fbf70e5368ea52bfd71b Mon Sep 17 00:00:00 2001 From: Brian Wildt Date: Tue, 21 Mar 2023 10:49:35 +0100 Subject: [PATCH 030/180] version 0.2.7 - bugfixes Signed-off-by: WildtBrian --- CHANGELOG.md | 7 +++ README.md | 2 +- src/main/cobol/NUMBERS.CBL | 2 + .../interpreter/InterpreterController.java | 14 +++--- .../testSuiteParser/KeywordExtractor.java | 4 -- .../testSuiteParser/TestSuiteParser.java | 1 + .../cobolcheck/services/Constants.java | 4 ++ .../services/cobolLogic/DataType.java | 2 +- .../services/cobolLogic/Interpreter.java | 43 +++++++++++++++---- .../services/cobolLogic/NumericFields.java | 5 ++- .../cobol/NUMBERS/SymbolicRelationsTest.cut | 3 ++ .../cobolcheck/InterpreterControllerTest.java | 28 ++++++++---- 12 files changed, 87 insertions(+), 28 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a5319cfb..08163dae 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,13 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Mock SQL tables - Mock batch file I/O +## \[0.2.7\] 2023-03-21 - Unreleased +### Implemented +- EXPECT now properly handles variable subscription without a space delimiter (EXPECT varibable(idx) TO BE 1) +- COBOL level item 77 now handled properly +- More robust scanning of WORKING-STORAGE items +- Corrected assignment of the various COBOL computational binary field types. + ## \[0.2.6\] 2023-01-12 - Unreleased ### Implemented - Datastructure-verification for Working Storage has been added. diff --git a/README.md b/README.md index fe5b0108..297fc837 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ As of March 2022 we could use help with: ## Downloads -Version 0.2.6 pre-release is available! +Version 0.2.7 pre-release is available! [//]: # (- Find the download on the project home page on the [Neo Pragma site](https://neopragma.com/projects/cobol-check/).) - Find distributions here: [Cobol Check Ditributions](https://github.com/openmainframeproject/cobol-check/blob/main/build/distributions). diff --git a/src/main/cobol/NUMBERS.CBL b/src/main/cobol/NUMBERS.CBL index 913476f1..694fcaa5 100644 --- a/src/main/cobol/NUMBERS.CBL +++ b/src/main/cobol/NUMBERS.CBL @@ -14,5 +14,7 @@ 05 ws-field-3 pic s9(16) comp. 05 ws-field-4 pic s9(16) comp-4. 05 ws-display-field pic s9(5)v99. + 05 ws-num-occ pic 9(04) occurs 10. + 77 CHAR-CT PIC S9(3) COMP. PROCEDURE DIVISION. GOBACK. diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java index 2bdfc73e..840a8545 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java @@ -205,16 +205,19 @@ private void updateDependencies(CobolLine line) throws IOException { reader.updateState(); updateLineRepository(line); + List currentStatement = new ArrayList<>(); if (Interpreter.shouldLineBeReadAsStatement(line, reader.getState())){ - reader.readTillEndOfStatement(); + currentStatement = reader.readTillEndOfStatement(); + } else { + currentStatement.add(line); } - + if (reader.isFlagSet(Constants.SPECIAL_NAMES_PARAGRAPH)){ updateDecimalPointIsComma(line); } if (reader.isFlagSet(Constants.DATA_DIVISION)){ - this.currentDataStructure = updateCurrentDataStructure(line, currentDataStructure); + this.currentDataStructure = updateCurrentDataStructure(currentStatement, currentDataStructure); updateNumericFields(line); } @@ -312,11 +315,12 @@ private void updateNumericFields(CobolLine line) { if (!this.currentDataStructure.isEmpty()) { variableNameWeWantToSave = generateVariableNameBasedOnDataStructure(this.currentDataStructure); } + if (line.containsToken(Constants.COMP_3_VALUE)) { numericFields.setDataTypeOf(variableNameWeWantToSave.toUpperCase(Locale.ROOT), DataType.PACKED_DECIMAL); } else { - if (line.containsToken(Constants.COMP_VALUE)) { - numericFields.setDataTypeOf(variableNameWeWantToSave.toUpperCase(Locale.ROOT), DataType.FLOATING_POINT); + if (line.containsToken(Constants.COMP_VALUE) || line.containsToken(Constants.COMP_4_VALUE) || line.containsToken(Constants.COMP_5_VALUE) || line.containsToken(Constants.BINARY)) { + numericFields.setDataTypeOf(variableNameWeWantToSave.toUpperCase(Locale.ROOT), DataType.BINARY); } else { int ix = 0; for (String token : line.getTokens()) { diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/KeywordExtractor.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/KeywordExtractor.java index 00968630..dc030b60 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/KeywordExtractor.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/KeywordExtractor.java @@ -151,10 +151,6 @@ public boolean tokenListEndsDuringMultiToken(List tokens){ return false; } - public void handleEndOfWord(){ - - } - /** * Quoted strings may be enclosed in apostrophes (single quotes) or quotation marks (double quotes). diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index 7d22aae0..8e661c89 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -1032,6 +1032,7 @@ boolean fieldIsANumericDataType(String fieldNameForExpect) { return numericFields.dataTypeOf(fieldNameForExpect) == DataType.PACKED_DECIMAL || (numericFields.dataTypeOf(fieldNameForExpect) == DataType.FLOATING_POINT) + || (numericFields.dataTypeOf(fieldNameForExpect) == DataType.BINARY) || (numericFields.dataTypeOf(fieldNameForExpect) == DataType.DISPLAY_NUMERIC); } diff --git a/src/main/java/org/openmainframeproject/cobolcheck/services/Constants.java b/src/main/java/org/openmainframeproject/cobolcheck/services/Constants.java index 424fc4d6..bc649b72 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/services/Constants.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/services/Constants.java @@ -147,7 +147,11 @@ private Constants() { public static final String END_EXEC_TOKEN = "END-EXEC"; public static final String CONTINUE_TOKEN = "CONTINUE"; + public static final String BINARY = "BINARY"; + public static final String COMP_2_VALUE = "COMP-2"; public static final String COMP_3_VALUE = "COMP-3"; + public static final String COMP_4_VALUE = "COMP-4"; + public static final String COMP_5_VALUE = "COMP-5"; public static final String COMP_VALUE = "COMP"; public static final String PIC_VALUE = "PIC"; public static final String PICTURE_VALUE = "PICTURE"; diff --git a/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/DataType.java b/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/DataType.java index 91b800e5..e40ec13d 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/DataType.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/DataType.java @@ -1,5 +1,5 @@ package org.openmainframeproject.cobolcheck.services.cobolLogic; public enum DataType { - ALPHANUMERIC, PACKED_DECIMAL, FLOATING_POINT, DISPLAY_NUMERIC; + ALPHANUMERIC, BINARY, PACKED_DECIMAL, FLOATING_POINT, DISPLAY_NUMERIC; } diff --git a/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java b/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java index 2d9bfb7b..dfc70e8b 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java @@ -277,6 +277,13 @@ public static boolean shouldLineBeReadAsStatement(CobolLine line, State state){ if (line.containsToken(Constants.REPLACE_TOKEN)) return true; } + if (state.isFlagSetFor(Constants.DATA_DIVISION)){ + if (!line.getTrimmedString().endsWith(Constants.PERIOD)){ + return true; + } + } + + return false; } @@ -450,7 +457,16 @@ public static boolean endsInPeriod(List lines) { * This will make sure to add or remove any referenced field within the structure, based on * the level of said field within the structure. */ - public static TreeMap updateCurrentDataStructure(CobolLine line, TreeMap currentHierarchy) { + public static TreeMap updateCurrentDataStructure(List currentStatement, TreeMap currentHierarchy) { + + String statementString = ""; + + for(CobolLine loopLine: currentStatement){ + statementString += loopLine.getTrimmedString(); + } + statementString = statementString.trim().replace(Constants.PERIOD, ""); + String[] statementWords = statementString.split("\\s+"); + if (currentHierarchy==null) { currentHierarchy = new TreeMap<>(); } @@ -462,22 +478,33 @@ public static TreeMap updateCurrentDataStructure(CobolLine line, else { lastKeyOfCurrentHierarchy = currentHierarchy.lastKey(); } - int tokenWeWantToAdd; + + int cobolLevelNumber; try { - tokenWeWantToAdd=Integer.parseInt(line.getToken(0)); + cobolLevelNumber=Integer.parseInt(statementWords[0]); } catch (NumberFormatException e) { return currentHierarchy; } - String variableName = line.getToken(1); - while (lastKeyOfCurrentHierarchy > tokenWeWantToAdd && tokenWeWantToAdd > 0) { + + if (cobolLevelNumber == 77){ + cobolLevelNumber = 01; + } + String variableName = ""; + if (statementWords.length > 1) { + variableName = statementWords[1]; + } else { + variableName = "FILLER"; + } + + while (lastKeyOfCurrentHierarchy > cobolLevelNumber && cobolLevelNumber > 0) { currentHierarchy.remove(lastKeyOfCurrentHierarchy); lastKeyOfCurrentHierarchy = currentHierarchy.lastKey(); } - if (currentHierarchy.containsKey(tokenWeWantToAdd)) - currentHierarchy.replace(tokenWeWantToAdd, variableName); + if (currentHierarchy.containsKey(cobolLevelNumber)) + currentHierarchy.replace(cobolLevelNumber, variableName); else - currentHierarchy.put(tokenWeWantToAdd, variableName); + currentHierarchy.put(cobolLevelNumber, variableName); return currentHierarchy; } } diff --git a/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/NumericFields.java b/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/NumericFields.java index 66aa6f9f..0f06ccf5 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/NumericFields.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/NumericFields.java @@ -62,7 +62,10 @@ private String getKeyBasedOnAssumedDataStructure(String line) { String[] nameTokens = line.toUpperCase().split("(?:^|\\W)OF(?:$|\\W)|(?:^|\\W)IN(?:$|\\W)"); Boolean found=false; for (String key : fieldTypes.keySet()) { - if (key.toUpperCase().contains(nameTokens[0])) { + + String[] keyParts = key.split(","); + + if (keyParts[0].equalsIgnoreCase(nameTokens[0])) { int previousNameIndex = 0; int currentSearchIteration = 1; found = true; diff --git a/src/test/cobol/NUMBERS/SymbolicRelationsTest.cut b/src/test/cobol/NUMBERS/SymbolicRelationsTest.cut index 4f82697e..04c77ae4 100644 --- a/src/test/cobol/NUMBERS/SymbolicRelationsTest.cut +++ b/src/test/cobol/NUMBERS/SymbolicRelationsTest.cut @@ -240,3 +240,6 @@ move -123 to ws-field-3 expect ws-field-3 to be -123 + TestCase "Variable must be 4" + move 4 to ws-num-occ (1) + expect ws-num-occ(1) to be numeric 4 diff --git a/src/test/java/org/openmainframeproject/cobolcheck/InterpreterControllerTest.java b/src/test/java/org/openmainframeproject/cobolcheck/InterpreterControllerTest.java index 52ab225b..e7b45e3b 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/InterpreterControllerTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/InterpreterControllerTest.java @@ -724,15 +724,20 @@ public void it_reads_batch_file_io_statement_multi_line() throws IOException { @Test public void it_updates_numeric_fields() throws IOException { - String str1 = " DATA DIVISION."; - String str2 = " WORKING-STORAGE SECTION."; - String str3 = " 01 FILLER."; - String str4 = " 05 OUTPUT-FILE-STATUS PIC XX."; - String str5 = " 88 OUTPUT-OK VALUE '00'."; - String str6 = " 05 WS-COUNT PIC S9(5) COMP-3."; - String str7 = " 05 WS-COUNT-FORMATTED PIC ZZ,ZZ9."; + String str1 = " DATA DIVISION."; + String str2 = " WORKING-STORAGE SECTION."; + String str3 = " 01 FILLER."; + String str4 = " 05 OUTPUT-FILE-STATUS PIC XX."; + String str5 = " 88 OUTPUT-OK VALUE '00'."; + String str6 = " 05."; + String str7 = " 08 WS-COUNT PIC S9(5) COMP-3."; + String str8 = " 05 WS-DISPLAY-NUM2 PIC 9(04) OCCURS"; + String str9 = " 20."; + String str10 = " 05 TEMP-VAL PIC X(200) VALUE SPACES."; + String str11 = " 77 CHAR-CT PIC S9(3) COMP."; - Mockito.when(mockedReader.readLine()).thenReturn(str1, str2, str3, str4, str5, str6, str7, null); + + Mockito.when(mockedReader.readLine()).thenReturn(str1, str2, str3, str4, str5, str6, str7, str8, str9, str10, str11, null); while (interpreterController.interpretNextLine() != null){ interpreterController.interpretNextLine(); @@ -740,6 +745,13 @@ public void it_updates_numeric_fields() throws IOException { assertEquals("PACKED_DECIMAL", interpreterController.getNumericFieldDataTypeFor("WS-COUNT").name()); + assertEquals("DISPLAY_NUMERIC", + interpreterController.getNumericFieldDataTypeFor("WS-DISPLAY-NUM2").name()); + assertEquals("ALPHANUMERIC", + interpreterController.getNumericFieldDataTypeFor("TEMP-VAL").name()); + assertEquals("BINARY", + interpreterController.getNumericFieldDataTypeFor("CHAR-CT").name()); + } @Test From deeb7a50fc62ad6b43a27f1b9bf2f133323618f5 Mon Sep 17 00:00:00 2001 From: Brian Wildt Date: Wed, 22 Mar 2023 08:54:43 +0100 Subject: [PATCH 031/180] Minor refactoring Signed-off-by: WildtBrian --- build.gradle | 2 +- .../interpreter/InterpreterController.java | 12 +++- .../services/cobolLogic/Interpreter.java | 66 ++++++++++++------- 3 files changed, 54 insertions(+), 26 deletions(-) diff --git a/build.gradle b/build.gradle index 20e17f6e..451532fb 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ plugins { id 'jacoco' } -def productVersion = '0.2.6' +def productVersion = '0.2.7' def productName = 'cobol-check' group = 'org.openmainframeproject' description = 'Unit testing framework for Cobol' diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java index 840a8545..f97c1376 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java @@ -319,7 +319,7 @@ private void updateNumericFields(CobolLine line) { if (line.containsToken(Constants.COMP_3_VALUE)) { numericFields.setDataTypeOf(variableNameWeWantToSave.toUpperCase(Locale.ROOT), DataType.PACKED_DECIMAL); } else { - if (line.containsToken(Constants.COMP_VALUE) || line.containsToken(Constants.COMP_4_VALUE) || line.containsToken(Constants.COMP_5_VALUE) || line.containsToken(Constants.BINARY)) { + if (containsAnyBinaryToken(line)) { numericFields.setDataTypeOf(variableNameWeWantToSave.toUpperCase(Locale.ROOT), DataType.BINARY); } else { int ix = 0; @@ -337,7 +337,13 @@ private void updateNumericFields(CobolLine line) { } } } - + + private boolean containsAnyBinaryToken(CobolLine line) { + return line.containsToken(Constants.COMP_VALUE) + || line.containsToken(Constants.COMP_4_VALUE) + || line.containsToken(Constants.COMP_5_VALUE) + || line.containsToken(Constants.BINARY); + } /** * In order for us to verify wether a given field is numeric, we need to generate a key, * based on how the datastructure for the field is referenced. @@ -350,7 +356,7 @@ private String generateVariableNameBasedOnDataStructure(TreeMap Collection structureValues = descendingMap.values(); return String.join(",",structureValues); } - + /** * Updates the line repository with the given line, if it might have further use when testing. * Lines ahead of the current one, might be peeked or even read, if the current statement spans diff --git a/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java b/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java index dfc70e8b..a3ae75fb 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java @@ -459,13 +459,7 @@ public static boolean endsInPeriod(List lines) { */ public static TreeMap updateCurrentDataStructure(List currentStatement, TreeMap currentHierarchy) { - String statementString = ""; - - for(CobolLine loopLine: currentStatement){ - statementString += loopLine.getTrimmedString(); - } - statementString = statementString.trim().replace(Constants.PERIOD, ""); - String[] statementWords = statementString.split("\\s+"); + String[] statementWords = extractStatementWords(currentStatement); if (currentHierarchy==null) { currentHierarchy = new TreeMap<>(); @@ -479,23 +473,11 @@ public static TreeMap updateCurrentDataStructure(List lastKeyOfCurrentHierarchy = currentHierarchy.lastKey(); } - int cobolLevelNumber; - try { - cobolLevelNumber=Integer.parseInt(statementWords[0]); - } - catch (NumberFormatException e) { + if (!isInteger(statementWords[0])){ return currentHierarchy; } - - if (cobolLevelNumber == 77){ - cobolLevelNumber = 01; - } - String variableName = ""; - if (statementWords.length > 1) { - variableName = statementWords[1]; - } else { - variableName = "FILLER"; - } + int cobolLevelNumber = determineCobolLevelNumber(statementWords[0]); + String variableName = determineVariableName(statementWords); while (lastKeyOfCurrentHierarchy > cobolLevelNumber && cobolLevelNumber > 0) { currentHierarchy.remove(lastKeyOfCurrentHierarchy); @@ -507,4 +489,44 @@ public static TreeMap updateCurrentDataStructure(List currentHierarchy.put(cobolLevelNumber, variableName); return currentHierarchy; } + + private static String determineVariableName(String[] statementWords) { + String variableName = ""; + if (statementWords.length > 1) { + variableName = statementWords[1]; + } else { + variableName = "FILLER"; + } + return variableName; + } + + private static boolean isInteger(String testString) { + try { + Integer.parseInt(testString); + return true; + } catch (NumberFormatException e) { + return false; + } + } + + private static Integer determineCobolLevelNumber(String levelNumberString){ + int cobolLevelNumber = Integer.parseInt(levelNumberString); + if (cobolLevelNumber == 77){ + cobolLevelNumber = 01; + } + return cobolLevelNumber; + } + + private static String[] extractStatementWords(List currentStatement){ + String statementString = ""; + for(CobolLine loopLine: currentStatement){ + statementString += loopLine.getTrimmedString(); + } + statementString = statementString.trim().replace(Constants.PERIOD, ""); + String[] statementWords = statementString.split("\\s+"); + return statementWords; + } } + + + From 18a3a0df422743e3c27ac77d81184f359d336fb4 Mon Sep 17 00:00:00 2001 From: Brian Wildt Date: Wed, 22 Mar 2023 11:02:47 +0100 Subject: [PATCH 032/180] More refactoring Signed-off-by: Brian Wildt --- .../features/interpreter/InterpreterController.java | 10 ++-------- .../cobolcheck/services/cobolLogic/Interpreter.java | 11 ++++++++--- 2 files changed, 10 insertions(+), 11 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java index f97c1376..91988963 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java @@ -318,8 +318,8 @@ private void updateNumericFields(CobolLine line) { if (line.containsToken(Constants.COMP_3_VALUE)) { numericFields.setDataTypeOf(variableNameWeWantToSave.toUpperCase(Locale.ROOT), DataType.PACKED_DECIMAL); - } else { - if (containsAnyBinaryToken(line)) { + } else { + if (Interpreter.lineContainsBinaryFieldDefinition(line)) { numericFields.setDataTypeOf(variableNameWeWantToSave.toUpperCase(Locale.ROOT), DataType.BINARY); } else { int ix = 0; @@ -338,12 +338,6 @@ private void updateNumericFields(CobolLine line) { } } - private boolean containsAnyBinaryToken(CobolLine line) { - return line.containsToken(Constants.COMP_VALUE) - || line.containsToken(Constants.COMP_4_VALUE) - || line.containsToken(Constants.COMP_5_VALUE) - || line.containsToken(Constants.BINARY); - } /** * In order for us to verify wether a given field is numeric, we need to generate a key, * based on how the datastructure for the field is referenced. diff --git a/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java b/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java index a3ae75fb..b21f11fe 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java @@ -278,15 +278,20 @@ public static boolean shouldLineBeReadAsStatement(CobolLine line, State state){ return true; } if (state.isFlagSetFor(Constants.DATA_DIVISION)){ - if (!line.getTrimmedString().endsWith(Constants.PERIOD)){ + if (!Interpreter.endsInPeriod(line)){ return true; } } - - return false; } + public static boolean lineContainsBinaryFieldDefinition(CobolLine line) { + return line.containsToken(Constants.COMP_VALUE) + || line.containsToken(Constants.COMP_4_VALUE) + || line.containsToken(Constants.COMP_5_VALUE) + || line.containsToken(Constants.BINARY); + } + public static boolean containsOnlyPeriod(CobolLine line){ return line == null ? false : line.getTrimmedString().equals(Constants.PERIOD); } From 224f6dc26c38e43df819a50ab01b1da8ce839325 Mon Sep 17 00:00:00 2001 From: Brian Wildt Date: Fri, 24 Mar 2023 08:22:14 +0100 Subject: [PATCH 033/180] Extension now uses 0.2.7 Signed-off-by: Brian Wildt --- build/distributions/cobol-check-0.2.7.zip | Bin 0 -> 218089 bytes vs code extension/CHANGELOG.md | 3 +++ ...-check-0.2.5.jar => cobol-check-0.2.7.jar} | Bin 239839 -> 243274 bytes vs code extension/package.json | 2 +- 4 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 build/distributions/cobol-check-0.2.7.zip rename vs code extension/Cobol-check/bin/{cobol-check-0.2.5.jar => cobol-check-0.2.7.jar} (64%) diff --git a/build/distributions/cobol-check-0.2.7.zip b/build/distributions/cobol-check-0.2.7.zip new file mode 100644 index 0000000000000000000000000000000000000000..82bf06c74ab470f8dacc214bda32fb977bd580d3 GIT binary patch literal 218089 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

{vd%rGF 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%0D8k!VjojfTHs4gKM56}`_sMN}J$nu(4_ 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 Rh`@i!V0*==8Hh>*{{z#j*s1^k diff --git a/vs code extension/client/src/services/TestTree.ts b/vs code extension/client/src/services/TestTree.ts deleted file mode 100644 index f1d6cf8b..00000000 --- a/vs code extension/client/src/services/TestTree.ts +++ /dev/null @@ -1,163 +0,0 @@ -import { TextDecoder } from 'util'; -import * as vscode from 'vscode'; -import { parseMarkdown } from './CobolCheckInputParser'; -import internal = require('stream'); -import { integer } from 'vscode-languageclient'; - -const textDecoder = new TextDecoder('utf-8'); - -export type MarkdownTestData = TestFile | TestHeading | TestCase; - -// only for the root files -export const testData = new WeakMap(); - -let generationCounter = 0; - -export const getContentFromFilesystem = async (uri: vscode.Uri, isFile) => { - try { - // vscode.workspace.fs.readDirectory - if(isFile){ - const rawContent = await vscode.workspace.fs.readFile(uri); - return textDecoder.decode(rawContent); - } - return null - - } catch (e) { - console.warn(`Error providing tests for ${uri.fsPath}`, e); - return ''; - } -}; - -export class TestFile { - public didResolve = false; - - public async updateFromDisk(controller: vscode.TestController, item: vscode.TestItem) { - try { - if(!this.isDirectory(item.uri.fsPath)){ - var content= await getContentFromFilesystem(item.uri!, (item.children.size==0)); - item.error = undefined; - this.updateFromContents(controller, content, item, item.children.size); - - }else{ - for (const nestedItem of item.children) { - const data = testData.get(nestedItem[1]); - if(data instanceof TestFile){ - await this.updateFromDisk(controller,nestedItem[1] ) - } - } - } - } catch (e) { - item.error = (e as Error).stack; - } - } - - /** - * Parses the tests from the input text, and updates the tests contained - * by this file to be those from the text, - */ - public updateFromContents(controller: vscode.TestController, content: string, item: vscode.TestItem, fileDepth: integer) { - const ancestors = [{ item, children: [] as vscode.TestItem[] }]; - const thisGeneration = generationCounter++; - this.didResolve = true; - - const ascend = (depth: number) => { - while (ancestors.length > depth) { - const finished = ancestors.pop()!; - finished.item.children.replace(finished.children); - } - }; - - parseMarkdown(content, { - onTest: (range, label) => { - const parent = ancestors[ancestors.length - 1]; - const data = new TestCase(label); - const id = `${item.uri}/${data.getLabel()}`; - const tcase = controller.createTestItem(id, data.getLabel(), item.uri); - testData.set(tcase, data); - tcase.range = range; - parent.children.push(tcase); - }, - - onHeading: (range, name, depth) => { - ascend(depth); - const parent = ancestors[ancestors.length - 1]; - const id = `${item.uri}/${name}`; - const thead = controller.createTestItem(id, name, item.uri); - thead.range = range; - testData.set(thead, new TestHeading(thisGeneration)); - parent.children.push(thead); - ancestors.push({ item: thead, children: [] }); - }, - }); - - ascend(fileDepth) - // if(isFile) ascend(1) - // else ascend(0) // finish and assign children for all remaining items - } - - - public isDirectory(fileName:string){ - if(fileName.includes(".cut")) return false - else return true - } - - - -} - -export class TestHeading { - constructor(public generation: number) { - } - async run(item: vscode.TestItem, options: vscode.TestRun): Promise { - const start = Date.now(); - await new Promise(resolve => setTimeout(resolve, 1000 + Math.random() * 1000)); - const duration = Date.now() - start; - options.passed(item, duration); - } -} - -type Operator = '+' | '-' | '*' | '/'; - -export class TestCase { - constructor( - private readonly label: string, - // private readonly a: number, - // private readonly operator: Operator, - // private readonly b: number, - // private readonly expected: number, - // public generation: number - ) { } - - getLabel() { - return this.label; - } - - async run(item: vscode.TestItem, options: vscode.TestRun): Promise { - const start = Date.now(); - await new Promise(resolve => setTimeout(resolve, 1 + Math.random() * 1)); - const duration = Date.now() - start; - options.passed(item, duration); - - // if (actual === this.expected) { - // options.passed(item, duration); - // } else { - // const message = vscode.TestMessage.diff(`Expected ${item.label}`, String(this.expected), String(actual)); - // message.location = new vscode.Location(item.uri!, item.range!); - // options.failed(item, message, duration); - // } - } - - // private evaluate() { - // switch (this.operator) { - // case '-': - // return this.a - this.b; - // case '+': - // return this.a + this.b; - // case '/': - // return Math.floor(this.a / this.b); - // case '*': - // return this.a * this.b; - // } - // } -} - diff --git a/vs code extension/.eslintignore b/vs-code-extension/.eslintignore similarity index 100% rename from vs code extension/.eslintignore rename to vs-code-extension/.eslintignore diff --git a/vs code extension/.eslintrc.js b/vs-code-extension/.eslintrc.js similarity index 100% rename from vs code extension/.eslintrc.js rename to vs-code-extension/.eslintrc.js diff --git a/vs code extension/.eslintrc.json b/vs-code-extension/.eslintrc.json similarity index 100% rename from vs code extension/.eslintrc.json rename to vs-code-extension/.eslintrc.json diff --git a/vs code extension/.vscodeignore b/vs-code-extension/.vscodeignore similarity index 100% rename from vs code extension/.vscodeignore rename to vs-code-extension/.vscodeignore diff --git a/vs code extension/CHANGELOG.md b/vs-code-extension/CHANGELOG.md similarity index 100% rename from vs code extension/CHANGELOG.md rename to vs-code-extension/CHANGELOG.md diff --git a/vs code extension/CONTRIBUTING.md b/vs-code-extension/CONTRIBUTING.md similarity index 100% rename from vs code extension/CONTRIBUTING.md rename to vs-code-extension/CONTRIBUTING.md diff --git a/vs-code-extension/Cobol-check/ParserErrorLog.txt b/vs-code-extension/Cobol-check/ParserErrorLog.txt new file mode 100755 index 00000000..e69de29b diff --git a/vs code extension/Cobol-check/cobolcheck b/vs-code-extension/Cobol-check/cobolcheck similarity index 100% rename from vs code extension/Cobol-check/cobolcheck rename to vs-code-extension/Cobol-check/cobolcheck diff --git a/vs code extension/Cobol-check/cobolcheck.cmd b/vs-code-extension/Cobol-check/cobolcheck.cmd similarity index 100% rename from vs code extension/Cobol-check/cobolcheck.cmd rename to vs-code-extension/Cobol-check/cobolcheck.cmd diff --git a/vs code extension/Cobol-check/config.properties b/vs-code-extension/Cobol-check/config.properties similarity index 100% rename from vs code extension/Cobol-check/config.properties rename to vs-code-extension/Cobol-check/config.properties diff --git a/vs code extension/Cobol-check/default.properties b/vs-code-extension/Cobol-check/default.properties similarity index 100% rename from vs code extension/Cobol-check/default.properties rename to vs-code-extension/Cobol-check/default.properties diff --git a/vs-code-extension/Cobol-check/output/testResults.html b/vs-code-extension/Cobol-check/output/testResults.html new file mode 100755 index 00000000..fc41f118 --- /dev/null +++ b/vs-code-extension/Cobol-check/output/testResults.html @@ -0,0 +1,278 @@ + + + + + + + + +

Test report for ALPHA

+Run from: 2023/08/25 17:24:48 + + + + + + + + + + + + + +
Suites (1)Tests (15)
1 passed15 passed
0 failed0 failed
+
+ + + + + + + + +
Equality with an alphanumeric literal using TO BEpassed
+
null
+
+
+ + + + + + + + +
Equality with an alphanumeric literal using TO EQUALpassed
+
null
+
+
+ + + + + + + + +
Equality with an alphanumeric literal using '='passed
+
null
+
+
+ + + + + + + + +
Equality with an alphanumeric literal and reference modificationpassed
+
null
+
+
+ + + + + + + + +
Non-equality with an alphanumeric literal using TO BEpassed
+
null
+
+
+ + + + + + + + +
Non-equality with an alphanumeric literal using TO EQUALpassed
+
null
+
+
+ + + + + + + + +
Non-equality with an alphanumeric literal using '!='passed
+
null
+
+
+ + + + + + + + +
Non-equality with an alphanumeric literal and reference modificationpassed
+
null
+
+
+ + + + + + + + +
Greater-than sign with an alphanumeric literalpassed
+
null
+
+
+ + + + + + + + +
Less-than sign with an alphanumeric literalpassed
+
null
+
+
+ + + + + + + + +
Not greater-than sign with an alphanumeric literalpassed
+
null
+
+
+ + + + + + + + +
Not less-than sign with an alphanumeric literalpassed
+
null
+
+
+ + + + + + + + +
Display numericpassed
+
null
+
+
+ + + + + + + + +
Variable must be SPACEpassed
+
null
+
+
+ + + + + + + + +
Variable must be SPACESpassed
+
null
+
+
+ + \ No newline at end of file diff --git a/vs code extension/Cobol-check/scripts/linux_gnucobol_run_tests b/vs-code-extension/Cobol-check/scripts/linux_gnucobol_run_tests old mode 100644 new mode 100755 similarity index 100% rename from vs code extension/Cobol-check/scripts/linux_gnucobol_run_tests rename to vs-code-extension/Cobol-check/scripts/linux_gnucobol_run_tests diff --git a/vs code extension/Cobol-check/scripts/windows_gnucobol_run_tests.cmd b/vs-code-extension/Cobol-check/scripts/windows_gnucobol_run_tests.cmd similarity index 100% rename from vs code extension/Cobol-check/scripts/windows_gnucobol_run_tests.cmd rename to vs-code-extension/Cobol-check/scripts/windows_gnucobol_run_tests.cmd diff --git a/vs code extension/Cobol-check/src/main/cobol/ALPHA.CBL b/vs-code-extension/Cobol-check/src/main/cobol/ALPHA.CBL similarity index 100% rename from vs code extension/Cobol-check/src/main/cobol/ALPHA.CBL rename to vs-code-extension/Cobol-check/src/main/cobol/ALPHA.CBL diff --git a/vs code extension/Cobol-check/src/main/cobol/NUMBERS.CBL b/vs-code-extension/Cobol-check/src/main/cobol/NUMBERS.CBL similarity index 100% rename from vs code extension/Cobol-check/src/main/cobol/NUMBERS.CBL rename to vs-code-extension/Cobol-check/src/main/cobol/NUMBERS.CBL diff --git a/vs code extension/Cobol-check/src/test/cobol/ALPHA/AlphaExpectationsTest.cut b/vs-code-extension/Cobol-check/src/test/cobol/ALPHA/AlphaExpectationsTest.cut similarity index 100% rename from vs code extension/Cobol-check/src/test/cobol/ALPHA/AlphaExpectationsTest.cut rename to vs-code-extension/Cobol-check/src/test/cobol/ALPHA/AlphaExpectationsTest.cut diff --git a/vs code extension/Cobol-check/src/test/cobol/NUMBERS/SymbolicRelationsTest.cut b/vs-code-extension/Cobol-check/src/test/cobol/NUMBERS/SymbolicRelationsTest.cut similarity index 100% rename from vs code extension/Cobol-check/src/test/cobol/NUMBERS/SymbolicRelationsTest.cut rename to vs-code-extension/Cobol-check/src/test/cobol/NUMBERS/SymbolicRelationsTest.cut diff --git a/vs code extension/LICENSE b/vs-code-extension/LICENSE similarity index 100% rename from vs code extension/LICENSE rename to vs-code-extension/LICENSE diff --git a/vs code extension/README.md b/vs-code-extension/README.md similarity index 100% rename from vs code extension/README.md rename to vs-code-extension/README.md diff --git a/vs code extension/client/package.json b/vs-code-extension/client/package.json similarity index 100% rename from vs code extension/client/package.json rename to vs-code-extension/client/package.json diff --git a/vs code extension/client/src/Helpers/ExtensionHelper.ts b/vs-code-extension/client/src/Helpers/ExtensionHelper.ts similarity index 78% rename from vs code extension/client/src/Helpers/ExtensionHelper.ts rename to vs-code-extension/client/src/Helpers/ExtensionHelper.ts index b421ea24..324669ca 100644 --- a/vs code extension/client/src/Helpers/ExtensionHelper.ts +++ b/vs-code-extension/client/src/Helpers/ExtensionHelper.ts @@ -21,6 +21,13 @@ export async function handleCobolCheckOut(output : CobParser.CobolCheckOutputPar resolve(true); break; + case CobParser.OutputState.TestFailed: + testResultFile = appendPath(vsCodeInstallDir, await getConfigurationValueFor(configPath, 'test.results.file')); + htmlResult = await getTextFromFile(testResultFile + '.html'); + showWebWiev('Test Results - ' + getCurrentProgramName(), htmlResult) + resolve(false); + break; + case CobParser.OutputState.SyntaxWarnings: testResultFile = appendPath(vsCodeInstallDir, await getConfigurationValueFor(configPath, 'test.results.file')); htmlResult = await getTextFromFile(testResultFile + '.html'); @@ -81,4 +88,35 @@ function showWebWiev(title: string, html : string){ panel.title = title; panel.webview.html = html; } +} + + +export async function handleCobolCheckOutput(output : CobParser.CobolCheckOutputParser) : Promise{ + return new Promise(async resolve => { + switch(output.state){ + case CobParser.OutputState.NoIssues: + resolve(true) + + case CobParser.OutputState.TestFailed: + resolve(false) + + case CobParser.OutputState.SyntaxWarnings: + resolve(false) + + case CobParser.OutputState.SyntaxError: + resolve(false) + + case CobParser.OutputState.JavaException: + resolve(false) + + case CobParser.OutputState.CmdError: + resolve(false) + + case CobParser.OutputState.CobolCompilerError: + resolve(false) + + default: + resolve(false) + } + }); } \ No newline at end of file diff --git a/vs code extension/client/src/Helpers/HtmlHelper.ts b/vs-code-extension/client/src/Helpers/HtmlHelper.ts similarity index 100% rename from vs code extension/client/src/Helpers/HtmlHelper.ts rename to vs-code-extension/client/src/Helpers/HtmlHelper.ts diff --git a/vs code extension/client/src/Helpers/PathHelper.ts b/vs-code-extension/client/src/Helpers/PathHelper.ts similarity index 100% rename from vs code extension/client/src/Helpers/PathHelper.ts rename to vs-code-extension/client/src/Helpers/PathHelper.ts diff --git a/vs code extension/client/src/Helpers/StringHelper.ts b/vs-code-extension/client/src/Helpers/StringHelper.ts similarity index 100% rename from vs code extension/client/src/Helpers/StringHelper.ts rename to vs-code-extension/client/src/Helpers/StringHelper.ts diff --git a/vs code extension/client/src/extension.ts b/vs-code-extension/client/src/extension.ts similarity index 90% rename from vs code extension/client/src/extension.ts rename to vs-code-extension/client/src/extension.ts index 424645ac..21ba9ee2 100644 --- a/vs code extension/client/src/extension.ts +++ b/vs-code-extension/client/src/extension.ts @@ -21,7 +21,7 @@ import { getContentFromFilesystem, MarkdownTestData, TestCase, testData, TestFil let externalVsCodeInstallationDir = vscode.extensions.getExtension("openmainframeproject.cobol-check-extension").extensionPath; let configPath = appendPath(externalVsCodeInstallationDir, 'Cobol-check/config.properties'); let defaultConfigPath = appendPath(externalVsCodeInstallationDir, 'Cobol-check/default.properties'); -let cobolCheckJarPath = appendPath(externalVsCodeInstallationDir, 'Cobol-check/bin/cobol-check-0.2.5.jar'); +let cobolCheckJarPath = appendPath(externalVsCodeInstallationDir, 'Cobol-check/bin/cobol-check-0.2.8.jar'); let lastCurrentFile = null; let cutLanguageRunning = false; @@ -48,7 +48,15 @@ export function activate(context: ExtensionContext) { //Getting arguments to run let applicationSourceDir = await getConfigurationValueFor(configPath, 'application.source.directory'); - let argument : string = getCobolCheckRunArgumentsBasedOnCurrentFile(externalVsCodeInstallationDir, configPath, applicationSourceDir); + let argument : string = getCobolCheckRunArgumentsBasedOnCurrentFile(externalVsCodeInstallationDir, configPath, applicationSourceDir, vscode.window.activeTextEditor.document.uri.fsPath); + // console.log("externalVsCodeInstallationDir") + // console.log(externalVsCodeInstallationDir) + // console.log("configPath") + // console.log(configPath) + // console.log("applicationSourceDir") + // console.log(applicationSourceDir) + // console.log("argument") + // console.log(argument) if (argument === null) return; progress.report({ message: 'Running tests' }) @@ -106,7 +114,7 @@ export function activate(context: ExtensionContext) { }; const startTestRun = (request: vscode.TestRunRequest) => { - const queue: { test: vscode.TestItem; data: TestCase | TestHeading }[] = []; + const queue: { test: vscode.TestItem; data: MarkdownTestData }[] = []; const run = ctrl.createTestRun(request); // map of file uris to statements on each line: const coveredLines = new Map(); @@ -120,19 +128,23 @@ export function activate(context: ExtensionContext) { const data = testData.get(test); if (data instanceof TestCase - || (data instanceof TestHeading && test.children.size==0) + || (data instanceof TestFile ) + || (data instanceof TestHeading && test.children.size==0 + ) ) { run.enqueued(test); queue.push({ test, data }); - } else { - if (data instanceof TestFile ) { - await data.updateFromDisk(ctrl, test); - } + } + // else { + // if (data instanceof TestFile && data.isDirectory(test.uri.fsPath)) { + // // await data.updateFromDisk(ctrl, test); + // await discoverTests(gatherTestItems(test)); + // } - await discoverTests(gatherTestItems(test)); + // // await discoverTests(gatherTestItems(test)); - } - if(!(data instanceof TestFile) || !data.isDirectory(test.uri.fsPath)) + // } + if(!(data instanceof TestFile) || !data.getIsDirectory()) { if (test.uri && !coveredLines.has(test.uri.toString())) { try { @@ -165,10 +177,12 @@ export function activate(context: ExtensionContext) { await data.run(test, run); } - const lineNo = test.range!.start.line; - const fileCoverage = coveredLines.get(test.uri!.toString()); - if (fileCoverage) { - fileCoverage[lineNo]!.executionCount++; + if(!( data instanceof TestFile)){ + const lineNo = test.range!.start.line; + const fileCoverage = coveredLines.get(test.uri!.toString()); + if (fileCoverage) { + fileCoverage[lineNo]!.executionCount++; + } } run.appendOutput(`Completed ${test.id}\r\n`); @@ -252,7 +266,7 @@ function createDirItems( controller:vscode.TestController, uri: vscode.Uri){ if(!controller.items.get(rootUri)){ file = controller.createTestItem(rootUri, dirArr[0], tmpUri); controller.items.add(file); - data = new TestFile(); + data = new TestFile(rootUri); file.canResolveChildren = true; testData.set(file, data); @@ -276,7 +290,7 @@ function createDirItems( controller:vscode.TestController, uri: vscode.Uri){ if(!existing){ tmpUri = vscode.Uri.file(tmpDir); tmpFile = controller.createTestItem(tmpDir, dirArr[i], tmpUri); - tmpData = new TestFile(); + tmpData = new TestFile(tmpDir); tmpFile.canResolveChildren = true; testData.set(tmpFile, tmpData); // add to existing tree structure @@ -323,7 +337,7 @@ function gatherTestItems(test: vscode.TestItem) { const data : MarkdownTestData = testData.get(test) var items: vscode.TestItem[] = []; if(data instanceof TestFile){ - test.children.forEach(item => {items=items.concat(gatherTestItems(item))}); + items.push(test) } else if(data instanceof TestHeading && test.children.size==0){ items.push(test) diff --git a/vs code extension/client/src/services/CobolCheckConfiguration.ts b/vs-code-extension/client/src/services/CobolCheckConfiguration.ts similarity index 100% rename from vs code extension/client/src/services/CobolCheckConfiguration.ts rename to vs-code-extension/client/src/services/CobolCheckConfiguration.ts diff --git a/vs code extension/client/src/services/CobolCheckInputParser.ts b/vs-code-extension/client/src/services/CobolCheckInputParser.ts similarity index 100% rename from vs code extension/client/src/services/CobolCheckInputParser.ts rename to vs-code-extension/client/src/services/CobolCheckInputParser.ts diff --git a/vs code extension/client/src/services/CobolCheckLauncher.ts b/vs-code-extension/client/src/services/CobolCheckLauncher.ts similarity index 80% rename from vs code extension/client/src/services/CobolCheckLauncher.ts rename to vs-code-extension/client/src/services/CobolCheckLauncher.ts index d7b9812e..35921c57 100644 --- a/vs code extension/client/src/services/CobolCheckLauncher.ts +++ b/vs-code-extension/client/src/services/CobolCheckLauncher.ts @@ -11,23 +11,42 @@ let currentPlatform = getOS(); let currentProgramName : string = null; -export function getCobolCheckRunArgumentsBasedOnCurrentFile(vsCodeInstallPath : string, configPath : string, sourceDir : string) : string { - let currentFile = vscode.window.activeTextEditor.document.uri.fsPath; +let externalVsCodeInstallationDir = vscode.extensions.getExtension("openmainframeproject.cobol-check-extension").extensionPath; + + +export function getCobolCheckRunArgumentsBasedOnCurrentFile(vsCodeInstallPath : string, configPath : string, sourceDir : string, filePath:string) : string { + // let currentFile = vscode.window.activeTextEditor.document.uri.fsPath; //Getting the source path const srcFolderName = getRootFolder(sourceDir); - const srcFolderContext : string = getSourceFolderContextPath(currentFile, srcFolderName); - if (srcFolderContext === null) return null; + const srcFolderContext : string = getSourceFolderContextPath(filePath, srcFolderName); const cobolSourcePath = appendPath(srcFolderContext, sourceDir); LOGGER.log("Found source folder path: " + cobolSourcePath, LOGGER.INFO) - - //Getting program name based on current context - let programPath : string = getCobolProgramPathForGivenContext(currentFile, cobolSourcePath); + let programPath : string = getCobolProgramPathForGivenContext(filePath, cobolSourcePath); if (programPath === null) return null; let programName : string = getFileName(programPath, false); currentProgramName = programName; LOGGER.log("Found source program name: " + programName, LOGGER.INFO) + let cutName = getCutName(filePath); + return '-p ' + programName + ' -t '+ cutName + ' -c "' + configPath + '" -s "' + srcFolderContext + '" ' + + '-r "' + vsCodeInstallPath + '"'; + +} + +export function getCobolCheckRunArgumentsBasedOnCurrentDirectory(vsCodeInstallPath : string, configPath : string, sourceDir : string, filePath:string) : string { + const srcFolderName = getRootFolder(sourceDir); + const srcFolderContext : string = getSourceFolderContextPath(filePath, srcFolderName); + + + if (srcFolderContext === null) return null; + const cobolSourcePath = appendPath(srcFolderContext, sourceDir); + LOGGER.log("Found source folder path: " + cobolSourcePath, LOGGER.INFO) + //Getting program name based on current context + + let programName : string = filePath.split("/").pop(); + currentProgramName = programName; + LOGGER.log("Found source directory name: " + programName, LOGGER.INFO) return '-p ' + programName + ' -c "' + configPath + '" -s "' + srcFolderContext + '" ' + '-r "' + vsCodeInstallPath + '"'; } @@ -49,8 +68,11 @@ export async function runCobolCheck(path : string, commandLineArgs : string) : P LOGGER.log("Running Cobol Check with arguments: " + commandLineArgs, LOGGER.INFO) try{ var exec = require('child_process').exec; + // var tmpStr = "cd /Users/issac/Documents/GitHub/cobol-check/vs-code-extension/Cobol-check && " + const testPath = appendPath(externalVsCodeInstallationDir, "Cobol-check"); + var tmpStr = "cd " + testPath + " && " //Run Cobol Check jar with arguments - var child = exec(executeJarCommand + ' ' + commandLineArgs, (error : string, stdout : string, stderr : string) => { + var child = exec(tmpStr + executeJarCommand + ' ' + commandLineArgs, (error : string, stdout : string, stderr : string) => { if(error !== null){ LOGGER.log("*** COBOL CHECK ERROR: " + error, LOGGER.ERROR); } @@ -132,6 +154,12 @@ export function getFileName(path : string, includeExtension : boolean) : string{ } } +export function getCutName(path : string) : string{ + const name = path.split("/").pop() + if(!name.endsWith(".cut")) return null + return name; +} + export function getFileExtension(path : string) : string{ let programName : string = getFileName(path, true); let fileExtensionIndex = programName.indexOf('.'); @@ -193,7 +221,7 @@ function getOS() { return platform; } - function getFileSeperatorForOS(platform : string){ +function getFileSeperatorForOS(platform : string){ if (platform === windowsPlatform) return '\\'; else return '/'; } diff --git a/vs code extension/client/src/services/CobolCheckOutputParser.ts b/vs-code-extension/client/src/services/CobolCheckOutputParser.ts similarity index 90% rename from vs code extension/client/src/services/CobolCheckOutputParser.ts rename to vs-code-extension/client/src/services/CobolCheckOutputParser.ts index 1332cb71..7e5fcc8a 100644 --- a/vs code extension/client/src/services/CobolCheckOutputParser.ts +++ b/vs-code-extension/client/src/services/CobolCheckOutputParser.ts @@ -7,7 +7,8 @@ export enum OutputState { SyntaxError, JavaException, CmdError, - CobolCompilerError + CobolCompilerError, + TestFailed } @@ -18,6 +19,7 @@ export class CobolCheckOutputParser{ private compilerInfoTag:string = "INF009:" private compilerReturnCode1:string = "ended with exit code 1." + private compilerReturnCode4:string = "ended with exit code 4." private syntaxErrorToken:string = "SYNTAX ERROR in file:"; private runTimeErrorToken:string = "RUNTIME ERROR in file:"; private warningToken:string = "WARNING in file:"; @@ -40,6 +42,8 @@ export class CobolCheckOutputParser{ line = line.trim(); if (line.includes(this.compilerInfoTag) && line.endsWith(this.compilerReturnCode1)){ this.state = OutputState.CobolCompilerError; + }else if (line.includes(this.compilerInfoTag) && line.endsWith(this.compilerReturnCode4)){ + this.state = OutputState.TestFailed; } } } @@ -59,7 +63,7 @@ export class CobolCheckOutputParser{ if (line.startsWith(this.testSuiteToken)){ reachedTestResults = true; if (this.state !== OutputState.SyntaxWarnings) - this.state = OutputState.NoIssues; + if(this.state!=OutputState.TestFailed) this.state = OutputState.NoIssues; } if (this.state === OutputState.SyntaxError || this.state === OutputState.SyntaxWarnings){ if (!reachedTestResults) diff --git a/vs code extension/client/src/services/ResultWebView.ts b/vs-code-extension/client/src/services/ResultWebView.ts similarity index 100% rename from vs code extension/client/src/services/ResultWebView.ts rename to vs-code-extension/client/src/services/ResultWebView.ts diff --git a/vs-code-extension/client/src/services/TestTree.ts b/vs-code-extension/client/src/services/TestTree.ts new file mode 100644 index 00000000..65d9668d --- /dev/null +++ b/vs-code-extension/client/src/services/TestTree.ts @@ -0,0 +1,223 @@ +import { TextDecoder } from 'util'; +import * as vscode from 'vscode'; +import { parseMarkdown } from './CobolCheckInputParser'; +import internal = require('stream'); +import { integer } from 'vscode-languageclient'; +import { getConfigurationValueFor } from './CobolCheckConfiguration'; +import { appendPath, getCobolCheckRunArgumentsBasedOnCurrentDirectory, getCobolCheckRunArgumentsBasedOnCurrentFile, runCobolCheck } from './CobolCheckLauncher'; +import { handleCobolCheckOut, handleCobolCheckOutput } from '../Helpers/ExtensionHelper'; + +const textDecoder = new TextDecoder('utf-8'); +let externalVsCodeInstallationDir = vscode.extensions.getExtension("openmainframeproject.cobol-check-extension").extensionPath; +let configPath = appendPath(externalVsCodeInstallationDir, 'Cobol-check/config.properties'); +let cobolCheckJarPath = appendPath(externalVsCodeInstallationDir, 'Cobol-check/bin/cobol-check-0.2.8.jar'); + + + +export type MarkdownTestData = TestFile | TestHeading | TestCase; + +// only for the root files +export const testData = new WeakMap(); + +let generationCounter = 0; + +export const getContentFromFilesystem = async (uri: vscode.Uri, isFile) => { + try { + // vscode.workspace.fs.readDirectory + if(isFile){ + const rawContent = await vscode.workspace.fs.readFile(uri); + return textDecoder.decode(rawContent); + } + return null + + } catch (e) { + console.warn(`Error providing tests for ${uri.fsPath}`, e); + return ''; + } +}; + +export class TestFile { + + public didResolve = false; + private isDirectory:boolean; + + constructor(path:string) { + this.setDirectory(path) + } + + + public async updateFromDisk(controller: vscode.TestController, item: vscode.TestItem) { + try { + if(!this.getIsDirectory()){ + var content= await getContentFromFilesystem(item.uri!, (item.children.size==0)); + item.error = undefined; + this.updateFromContents(controller, content, item, item.children.size); + + }else{ + for (const nestedItem of item.children) { + const data = testData.get(nestedItem[1]); + if(data instanceof TestFile){ + await this.updateFromDisk(controller,nestedItem[1] ) + } + } + } + } catch (e) { + item.error = (e as Error).stack; + } + } + + /** + * Parses the tests from the input text, and updates the tests contained + * by this file to be those from the text, + */ + public updateFromContents(controller: vscode.TestController, content: string, item: vscode.TestItem, fileDepth: integer) { + const ancestors = [{ item, children: [] as vscode.TestItem[] }]; + const thisGeneration = generationCounter++; + this.didResolve = true; + + const ascend = (depth: number) => { + while (ancestors.length > depth) { + const finished = ancestors.pop()!; + finished.item.children.replace(finished.children); + } + }; + + parseMarkdown(content, { + onTest: (range, label) => { + const parent = ancestors[ancestors.length - 1]; + const data = new TestCase(label,content); + // console.log("label") + // console.log(label) + // console.log("content") + // console.log(content) + const id = `${item.uri}/${data.getLabel()}`; + const tcase = controller.createTestItem(id, data.getLabel(), item.uri); + testData.set(tcase, data); + tcase.range = range; + parent.children.push(tcase); + }, + + onHeading: (range, name, depth) => { + ascend(depth); + + const parent = ancestors[ancestors.length - 1]; + const id = `${item.uri}/${name}`; + const thead = controller.createTestItem(id, name, item.uri); + thead.range = range; + testData.set(thead, new TestHeading(thisGeneration,content)); + parent.children.push(thead); + ancestors.push({ item: thead, children: [] }); + }, + }); + + ascend(fileDepth) + // if(isFile) ascend(1) + // else ascend(0) // finish and assign children for all remaining items + } + + public setDirectory(fileName:string){ + if(fileName.includes(".cut")) this.isDirectory=false + else this.isDirectory=true + } + + public getIsDirectory(){ + return this.isDirectory; + } + + async run(item: vscode.TestItem, options: vscode.TestRun): Promise { + let applicationSourceDir = await getConfigurationValueFor(configPath, 'application.source.directory'); + let argument : string; + const data = testData.get(item); + if(data instanceof TestFile && ! data.getIsDirectory()){ + argument = getCobolCheckRunArgumentsBasedOnCurrentFile(externalVsCodeInstallationDir, configPath, applicationSourceDir, item.uri.fsPath ); + }else{ + argument = getCobolCheckRunArgumentsBasedOnCurrentDirectory(externalVsCodeInstallationDir, configPath, applicationSourceDir, item.uri.fsPath ); + } + const start = Date.now(); + let output = await runCobolCheck(cobolCheckJarPath, argument) + const result = await handleCobolCheckOut(output,externalVsCodeInstallationDir,configPath); + const duration = Date.now() - start; + if(result) options.passed(item, duration); + else{ + const message = vscode.TestMessage.diff(`Expected ${item.label}`, String("123"), String("223")); + options.failed(item, message, duration) + } + } + +} + +export class TestHeading { + constructor( + public generation: number, + private content: string + ) { + } + async run(item: vscode.TestItem, options: vscode.TestRun): Promise { + // let applicationSourceDir = await getConfigurationValueFor(configPath, 'application.source.directory'); + // let argument : string = getCobolCheckRunArgumentsBasedOnCurrentFile(externalVsCodeInstallationDir, configPath, applicationSourceDir); + // const output = runCobolCheck() // let applicationSourceDir = await getConfigurationValueFor(configPath, 'application.source.directory'); + // let argument : string = getCobolCheckRunArgumentsBasedOnCurrentFile(externalVsCodeInstallationDir, configPath, applicationSourceDir, item.uri.fsPath ); + // let output = await runCobolCheck(cobolCheckJarPath, argument) + + const start = Date.now(); + await new Promise(resolve => setTimeout(resolve, 1000 + Math.random() * 1000)); + const duration = Date.now() - start; + const message = vscode.TestMessage.diff(`Expected ${item.label}`, String("123"), String("This should not run")); + // options.failed(item, message ,duration); + options.passed(item, duration); + } +} + +export class TestCase { + constructor( + private readonly label: string, + private content: string + ) { } + + getLabel() { + return this.label; + } + + async run(item: vscode.TestItem, options: vscode.TestRun): Promise { + // let applicationSourceDir = await getConfigurationValueFor(configPath, 'application.source.directory'); + // let argument : string = getCobolCheckRunArgumentsBasedOnCurrentFile(externalVsCodeInstallationDir, configPath, applicationSourceDir); + // const output = runCobolCheck() + + // Paste later + // const start = Date.now(); + // let applicationSourceDir = await getConfigurationValueFor(configPath, 'application.source.directory'); + // let argument : string = getCobolCheckRunArgumentsBasedOnCurrentFile(externalVsCodeInstallationDir, configPath, applicationSourceDir, item.uri.fsPath); + + // // TODO here + // console.log("argument!!!") + // console.log(this.label) // test case name + // console.log(item.uri.fsPath) // file path + // console.log("externalVsCodeInstallationDir") + // console.log(externalVsCodeInstallationDir) + // console.log("configPath") + // console.log(configPath) + // console.log("applicationSourceDir") + // console.log(applicationSourceDir) + // console.log("argument") + // console.log(argument) + // let output = await runCobolCheck(cobolCheckJarPath, argument) + // const result = await handleCobolCheckOutput(output); + // // await new Promise(resolve => setTimeout(resolve, 1000 + Math.random() * 1000)); + // const duration = Date.now() - start; + // if(result) options.passed(item, duration); + // else{ + // const message = vscode.TestMessage.diff(`Expected ${item.label}`, String("123"), String("223")); + // options.failed(item, message, duration) + // } + + const start = Date.now(); + await new Promise(resolve => setTimeout(resolve, 1000 + Math.random() * 1000)); + const duration = Date.now() - start; + const message = vscode.TestMessage.diff(`Expected ${item.label}`, String("123"), String("This should not run")); + // options.failed(item, message ,duration); + options.passed(item, duration); + } + + +} + diff --git a/vs code extension/client/src/services/cutLanguageClientServerSetup.ts b/vs-code-extension/client/src/services/cutLanguageClientServerSetup.ts similarity index 100% rename from vs code extension/client/src/services/cutLanguageClientServerSetup.ts rename to vs-code-extension/client/src/services/cutLanguageClientServerSetup.ts diff --git a/vs code extension/client/src/test/diagnostics.test.ts b/vs-code-extension/client/src/test/diagnostics.test.ts similarity index 100% rename from vs code extension/client/src/test/diagnostics.test.ts rename to vs-code-extension/client/src/test/diagnostics.test.ts diff --git a/vs code extension/client/src/test/helper.ts b/vs-code-extension/client/src/test/helper.ts similarity index 100% rename from vs code extension/client/src/test/helper.ts rename to vs-code-extension/client/src/test/helper.ts diff --git a/vs code extension/client/src/test/index.ts b/vs-code-extension/client/src/test/index.ts similarity index 100% rename from vs code extension/client/src/test/index.ts rename to vs-code-extension/client/src/test/index.ts diff --git a/vs code extension/client/src/test/runTest.ts b/vs-code-extension/client/src/test/runTest.ts similarity index 100% rename from vs code extension/client/src/test/runTest.ts rename to vs-code-extension/client/src/test/runTest.ts diff --git a/vs code extension/client/src/utils/Logger.ts b/vs-code-extension/client/src/utils/Logger.ts similarity index 100% rename from vs code extension/client/src/utils/Logger.ts rename to vs-code-extension/client/src/utils/Logger.ts diff --git a/vs code extension/client/src/vscode.proposed.testContinuousRun.d.ts b/vs-code-extension/client/src/vscode.proposed.testContinuousRun.d.ts similarity index 100% rename from vs code extension/client/src/vscode.proposed.testContinuousRun.d.ts rename to vs-code-extension/client/src/vscode.proposed.testContinuousRun.d.ts diff --git a/vs code extension/client/src/vscode.proposed.testCoverage.d.ts b/vs-code-extension/client/src/vscode.proposed.testCoverage.d.ts similarity index 100% rename from vs code extension/client/src/vscode.proposed.testCoverage.d.ts rename to vs-code-extension/client/src/vscode.proposed.testCoverage.d.ts diff --git a/vs code extension/client/test.cut b/vs-code-extension/client/test.cut similarity index 98% rename from vs code extension/client/test.cut rename to vs-code-extension/client/test.cut index 261f924f..e8d93f6c 100644 --- a/vs code extension/client/test.cut +++ b/vs-code-extension/client/test.cut @@ -22,4 +22,3 @@ END-EVALUATE END-MOCK - \ No newline at end of file diff --git a/vs code extension/client/testFixture copy/alpha.cut b/vs-code-extension/client/testFixture copy/alpha.cut similarity index 100% rename from vs code extension/client/testFixture copy/alpha.cut rename to vs-code-extension/client/testFixture copy/alpha.cut diff --git a/vs code extension/client/testFixture copy/alpha/alpha.cut b/vs-code-extension/client/testFixture copy/alpha/alpha.cut similarity index 100% rename from vs code extension/client/testFixture copy/alpha/alpha.cut rename to vs-code-extension/client/testFixture copy/alpha/alpha.cut diff --git a/vs code extension/client/testFixture copy/errorfree.cut b/vs-code-extension/client/testFixture copy/errorfree.cut similarity index 100% rename from vs code extension/client/testFixture copy/errorfree.cut rename to vs-code-extension/client/testFixture copy/errorfree.cut diff --git a/vs code extension/client/testFixture copy/missingdelimiters.cut b/vs-code-extension/client/testFixture copy/missingdelimiters.cut similarity index 100% rename from vs code extension/client/testFixture copy/missingdelimiters.cut rename to vs-code-extension/client/testFixture copy/missingdelimiters.cut diff --git a/vs code extension/client/testFixture copy/missingtestsuite.cut b/vs-code-extension/client/testFixture copy/missingtestsuite.cut similarity index 100% rename from vs code extension/client/testFixture copy/missingtestsuite.cut rename to vs-code-extension/client/testFixture copy/missingtestsuite.cut diff --git a/vs code extension/client/testFixture copy/syntaxerror.cut b/vs-code-extension/client/testFixture copy/syntaxerror.cut similarity index 100% rename from vs code extension/client/testFixture copy/syntaxerror.cut rename to vs-code-extension/client/testFixture copy/syntaxerror.cut diff --git a/vs code extension/client/testFixture/alpha.cut b/vs-code-extension/client/testFixture/alpha.cut similarity index 100% rename from vs code extension/client/testFixture/alpha.cut rename to vs-code-extension/client/testFixture/alpha.cut diff --git a/vs code extension/client/testFixture/alpha/alpha copy/alpha.cut b/vs-code-extension/client/testFixture/alpha/alpha copy/alpha.cut similarity index 100% rename from vs code extension/client/testFixture/alpha/alpha copy/alpha.cut rename to vs-code-extension/client/testFixture/alpha/alpha copy/alpha.cut diff --git a/vs code extension/client/testFixture/alpha/alpha.cut b/vs-code-extension/client/testFixture/alpha/alpha.cut similarity index 100% rename from vs code extension/client/testFixture/alpha/alpha.cut rename to vs-code-extension/client/testFixture/alpha/alpha.cut diff --git a/vs code extension/client/testFixture/errorfree.cut b/vs-code-extension/client/testFixture/errorfree.cut similarity index 100% rename from vs code extension/client/testFixture/errorfree.cut rename to vs-code-extension/client/testFixture/errorfree.cut diff --git a/vs code extension/client/testFixture/missingdelimiters.cut b/vs-code-extension/client/testFixture/missingdelimiters.cut similarity index 100% rename from vs code extension/client/testFixture/missingdelimiters.cut rename to vs-code-extension/client/testFixture/missingdelimiters.cut diff --git a/vs code extension/client/testFixture/missingtestsuite.cut b/vs-code-extension/client/testFixture/missingtestsuite.cut similarity index 100% rename from vs code extension/client/testFixture/missingtestsuite.cut rename to vs-code-extension/client/testFixture/missingtestsuite.cut diff --git a/vs code extension/client/testFixture/syntaxerror.cut b/vs-code-extension/client/testFixture/syntaxerror.cut similarity index 100% rename from vs code extension/client/testFixture/syntaxerror.cut rename to vs-code-extension/client/testFixture/syntaxerror.cut diff --git a/vs code extension/client/tsconfig.json b/vs-code-extension/client/tsconfig.json similarity index 100% rename from vs code extension/client/tsconfig.json rename to vs-code-extension/client/tsconfig.json diff --git a/vs code extension/images/cobol-check-logo-small.png b/vs-code-extension/images/cobol-check-logo-small.png similarity index 100% rename from vs code extension/images/cobol-check-logo-small.png rename to vs-code-extension/images/cobol-check-logo-small.png diff --git a/vs code extension/images/cobol-check-logo-white-small.png b/vs-code-extension/images/cobol-check-logo-white-small.png similarity index 100% rename from vs code extension/images/cobol-check-logo-white-small.png rename to vs-code-extension/images/cobol-check-logo-white-small.png diff --git a/vs code extension/images/run-dark.svg b/vs-code-extension/images/run-dark.svg similarity index 100% rename from vs code extension/images/run-dark.svg rename to vs-code-extension/images/run-dark.svg diff --git a/vs code extension/images/run-light.svg b/vs-code-extension/images/run-light.svg similarity index 100% rename from vs code extension/images/run-light.svg rename to vs-code-extension/images/run-light.svg diff --git a/vs code extension/language-configuration.json b/vs-code-extension/language-configuration.json similarity index 100% rename from vs code extension/language-configuration.json rename to vs-code-extension/language-configuration.json diff --git a/vs code extension/media/main.css b/vs-code-extension/media/main.css similarity index 100% rename from vs code extension/media/main.css rename to vs-code-extension/media/main.css diff --git a/vs code extension/media/main.js b/vs-code-extension/media/main.js similarity index 100% rename from vs code extension/media/main.js rename to vs-code-extension/media/main.js diff --git a/vs code extension/media/reset.css b/vs-code-extension/media/reset.css similarity index 100% rename from vs code extension/media/reset.css rename to vs-code-extension/media/reset.css diff --git a/vs code extension/media/vscode.css b/vs-code-extension/media/vscode.css similarity index 100% rename from vs code extension/media/vscode.css rename to vs-code-extension/media/vscode.css diff --git a/vs code extension/package.json b/vs-code-extension/package.json similarity index 100% rename from vs code extension/package.json rename to vs-code-extension/package.json diff --git a/vs code extension/scripts/e2e.sh b/vs-code-extension/scripts/e2e.sh similarity index 100% rename from vs code extension/scripts/e2e.sh rename to vs-code-extension/scripts/e2e.sh diff --git a/vs code extension/server/package.json b/vs-code-extension/server/package.json similarity index 100% rename from vs code extension/server/package.json rename to vs-code-extension/server/package.json diff --git a/vs code extension/server/src/server.ts b/vs-code-extension/server/src/server.ts similarity index 100% rename from vs code extension/server/src/server.ts rename to vs-code-extension/server/src/server.ts diff --git a/vs code extension/server/src/utils/Logger.ts b/vs-code-extension/server/src/utils/Logger.ts similarity index 100% rename from vs code extension/server/src/utils/Logger.ts rename to vs-code-extension/server/src/utils/Logger.ts diff --git a/vs code extension/server/tsconfig.json b/vs-code-extension/server/tsconfig.json similarity index 100% rename from vs code extension/server/tsconfig.json rename to vs-code-extension/server/tsconfig.json diff --git a/vs code extension/snippets/cut-snippets.json b/vs-code-extension/snippets/cut-snippets.json similarity index 100% rename from vs code extension/snippets/cut-snippets.json rename to vs-code-extension/snippets/cut-snippets.json diff --git a/vs code extension/syntaxes/cut.tmLanguage.json b/vs-code-extension/syntaxes/cut.tmLanguage.json similarity index 100% rename from vs code extension/syntaxes/cut.tmLanguage.json rename to vs-code-extension/syntaxes/cut.tmLanguage.json diff --git a/vs code extension/tsconfig.json b/vs-code-extension/tsconfig.json similarity index 100% rename from vs code extension/tsconfig.json rename to vs-code-extension/tsconfig.json From 6bf9226b0e96309028d0729c43c082c262ab24f5 Mon Sep 17 00:00:00 2001 From: Akash Kumar Date: Sat, 26 Aug 2023 00:06:39 +0530 Subject: [PATCH 130/180] fix old code for commenting out and update tests Signed-off-by: Akash Kumar --- .../cobolcheck/features/writer/CobolWriter.java | 2 +- .../openmainframeproject/cobolcheck/writerTest.java | 12 ++++++------ 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/writer/CobolWriter.java b/src/main/java/org/openmainframeproject/cobolcheck/features/writer/CobolWriter.java index 691d5d22..0ab9ef88 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/writer/CobolWriter.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/writer/CobolWriter.java @@ -202,7 +202,7 @@ else if (isRecursiveCall) else if (line2.length() > 0 && isComment){ //Continue comment writeLine(line1); - line2 = (" * " + line2); + line2 = StringHelper.commentOutLine(line2); } //Handle line 2 if (line2.length() > maxLineLength){ diff --git a/src/test/java/org/openmainframeproject/cobolcheck/writerTest.java b/src/test/java/org/openmainframeproject/cobolcheck/writerTest.java index dae0fc22..80f8c725 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/writerTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/writerTest.java @@ -113,9 +113,9 @@ void it_formats_a_long_Cobol_comment_into_3_lines() throws IOException { "oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong, that it needs to be multiple lines."; String expectedLine1 = " * This comment is so loooooooooooooooooooooooooooooooooooooooooooo "; expectedLine1 += Constants.NEWLINE; - String expectedLine2 = " * oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo "; + String expectedLine2 = " *oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooon "; expectedLine2 += Constants.NEWLINE; - String expectedLine3 = " * ng, that it needs to be multiple lines. "; + String expectedLine3 = " *g, that it needs to be multiple lines. "; expectedLine3 += Constants.NEWLINE; writerController.writeCommentedLine(originalText); assertEquals(expectedLine1 + expectedLine2 + expectedLine3, writer.toString()); @@ -127,9 +127,9 @@ void it_formats_a_long_Cobol_comment_into_3_lines_without_comment_indicator() th "oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong, that it needs to be multiple lines."; String expectedLine1 = " * This comment is so loooooooooooooooooooooooooooooooooooooooooooo "; expectedLine1 += Constants.NEWLINE; - String expectedLine2 = " * oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo "; + String expectedLine2 = " *oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooon "; expectedLine2 += Constants.NEWLINE; - String expectedLine3 = " * ng, that it needs to be multiple lines. "; + String expectedLine3 = " *g, that it needs to be multiple lines. "; expectedLine3 += Constants.NEWLINE; writerController.writeCommentedLine(originalText); assertEquals(expectedLine1 + expectedLine2 + expectedLine3, writer.toString()); @@ -141,9 +141,9 @@ void it_formats_a_long_Cobol_comment_into_3_lines_without_calling_commentedLine_ "oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooong, that it needs to be multiple lines."; String expectedLine1 = " * This comment is so loooooooooooooooooooooooooooooooooooooooooooo "; expectedLine1 += Constants.NEWLINE; - String expectedLine2 = " * oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooo "; + String expectedLine2 = " *oooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooooon "; expectedLine2 += Constants.NEWLINE; - String expectedLine3 = " * ng, that it needs to be multiple lines. "; + String expectedLine3 = " *g, that it needs to be multiple lines. "; expectedLine3 += Constants.NEWLINE; writerController.writeLine(originalText); assertEquals(expectedLine1 + expectedLine2 + expectedLine3, writer.toString()); From aacabd1821bd71cd3258a89f2c0d2084d482dea9 Mon Sep 17 00:00:00 2001 From: Akash Kumar Date: Sat, 26 Aug 2023 00:17:24 +0530 Subject: [PATCH 131/180] Fix Typo Signed-off-by: Akash Kumar --- .../features/interpreter/CobolReader.java | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/CobolReader.java b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/CobolReader.java index fee1ec4a..90d4ef24 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/CobolReader.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/CobolReader.java @@ -15,8 +15,8 @@ public class CobolReader { private State state; private TokenExtractor tokenExtractor; - private CobolLine prevoiusLine; - private CobolLine prevoiusMeaningfulLine; + private CobolLine previousLine; + private CobolLine previousMeaningfulLine; private CobolLine currentLine; private List nextLines; private List currentStatement; @@ -34,8 +34,8 @@ public CobolReader(BufferedReader sourceReader) { State getState() {return state; } CobolLine getCurrentLine() { return currentLine; } - CobolLine getPrevoiusLine() { return prevoiusLine; } - CobolLine getPrevoiusMeaningfulLine() { return prevoiusMeaningfulLine; } + CobolLine getPreviousLine() { return previousLine; } + CobolLine getPreviousMeaningfulLine() { return previousMeaningfulLine; } List getCurrentStatement(){ return currentStatement; } public String getLineJustEntered() { return lineJustEneterd; } @@ -53,7 +53,7 @@ CobolLine readLine() throws IOException { currentStatement = null; lineNumber++; if (!nextLines.isEmpty()){ - prevoiusLine = currentLine; + previousLine = currentLine; setPreviousMeaningfulLine(); currentLine = nextLines.get(0); nextLines.remove(0); @@ -63,7 +63,7 @@ CobolLine readLine() throws IOException { if (line == null){ return null; } - prevoiusLine = currentLine; + previousLine = currentLine; setPreviousMeaningfulLine(); currentLine = new CobolLine(line, tokenExtractor); return currentLine; @@ -79,7 +79,7 @@ CobolLine readStatementAsOneLine() throws IOException { private void setPreviousMeaningfulLine(){ if (Interpreter.isMeaningful(currentLine)) - prevoiusMeaningfulLine = currentLine; + previousMeaningfulLine = currentLine; } /** From b7516b04c25dfe8075b50968c51c387bd7cc51a8 Mon Sep 17 00:00:00 2001 From: Akash Kumar Date: Sat, 26 Aug 2023 00:37:26 +0530 Subject: [PATCH 132/180] add pretty format for multiline comment statements Signed-off-by: Akash Kumar --- .../features/interpreter/CobolReader.java | 23 +++++++++++++++---- .../interpreter/InterpreterController.java | 2 +- .../cobolcheck/MockIT.java | 3 ++- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/CobolReader.java b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/CobolReader.java index 90d4ef24..44c0faf1 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/CobolReader.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/CobolReader.java @@ -23,6 +23,7 @@ public class CobolReader { private int lineNumber; private String lineJustEneterd = null; + private final int maxLineLength = 72; public CobolReader(BufferedReader sourceReader) { reader = sourceReader; @@ -71,8 +72,10 @@ CobolLine readLine() throws IOException { //Will potentially make interpretation easier (not used) CobolLine readStatementAsOneLine() throws IOException { - while (!Interpreter.isEndOfStatement(currentLine, peekNextMeaningfulLine())){ - appendNextMeaningfulLineToCurrentLine(); + Boolean isFirstTime = true; + while (!Interpreter.isEndOfStatement(currentLine, peekNextMeaningfulLine())) { + appendNextMeaningfulLineToCurrentLine(isFirstTime); + isFirstTime = false; } return currentLine; } @@ -95,7 +98,7 @@ void close() throws IOException { reader.close(); } - CobolLine appendNextMeaningfulLineToCurrentLine() throws IOException{ + CobolLine appendNextMeaningfulLineToCurrentLine(Boolean isFirstTime) throws IOException{ List statementLines = new ArrayList<>(); CobolLine nextMeaningfulLine = peekNextMeaningfulLine(); if (Interpreter.containsOnlyPeriod(nextMeaningfulLine)){ @@ -103,8 +106,18 @@ CobolLine appendNextMeaningfulLineToCurrentLine() throws IOException{ nextMeaningfulLine.getTrimmedString(), tokenExtractor); } else { - currentLine = new CobolLine(currentLine.getUnNumberedString() + " " + - nextMeaningfulLine.getTrimmedString(), tokenExtractor); + int requiredSpaces = 0; + if(isFirstTime) + requiredSpaces = maxLineLength - currentLine.getUnNumberedString().length(); + else + requiredSpaces = maxLineLength - + (currentLine.getUnNumberedString().length() - previousLine.getUnNumberedString().length()); + previousLine = new CobolLine(currentLine.getOriginalString() + " ".repeat(requiredSpaces), tokenExtractor); + currentLine = new CobolLine( + currentLine.getUnNumberedString() + + " ".repeat(requiredSpaces) + + nextMeaningfulLine.getUnNumberedString(), + tokenExtractor); } nextLines.remove(nextLines.size() - 1); diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java index c9890cb3..0400db9e 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java @@ -335,7 +335,7 @@ private void updatePossibleMock(CobolLine line) throws IOException { && Interpreter.containsOnlyPeriod(nextLine)) { // We might generate code after the current line, thus if the period is on the next line, // we append it to this line. This prevents us generating code in the wrong place. - reader.appendNextMeaningfulLineToCurrentLine(); + reader.appendNextMeaningfulLineToCurrentLine(true); } } diff --git a/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java b/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java index 77bf9d85..52474b7c 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java @@ -781,7 +781,8 @@ public void it_inserts_call_mocks_without_commas_correctly() throws IOException " ***************************************************************** " + Constants.NEWLINE + " *WhenOther of: SECTION: 100-WELCOME " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " * CALL 'prog1' USING BY CONTENT VALUE-1, VALUE-2. " + Constants.NEWLINE + + " * CALL 'prog1' USING " + Constants.NEWLINE + + " * BY CONTENT VALUE-1, VALUE-2. " + Constants.NEWLINE + " EVALUATE UT-TEST-SUITE-NAME " + Constants.NEWLINE + " ALSO UT-TEST-CASE-NAME " + Constants.NEWLINE + " WHEN \"Mocking tests\" " + Constants.NEWLINE + From 5c8af38441e3c9034ec1d95406f31ab0297a55da Mon Sep 17 00:00:00 2001 From: Akash Kumar Date: Sat, 26 Aug 2023 00:52:16 +0530 Subject: [PATCH 133/180] Add Exception in CALL support Signed-off-by: Akash Kumar --- .../services/cobolLogic/Interpreter.java | 24 +- .../cobolcheck/ExpanderTest.java | 307 ++++++++++++++++++ 2 files changed, 330 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java b/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java index e9f2e9cf..394a42d4 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java @@ -163,6 +163,27 @@ public static boolean isEndOfStatement(CobolLine currentLine, CobolLine nextMean if (containsOnlyPeriod(nextMeaningfulLine)) { return false; } + if (currentLine.containsToken(Constants.CALL_TOKEN)) { + List currentTokens = currentLine.getTokens(); + int callTokenCount = 0, endCallTokenCount = 0; + for (String token : currentTokens) { + if (token.equals(Constants.CALL_TOKEN)) { + callTokenCount++; + } + if (token.equals(Constants.END_CALL_TOKEN)) { + endCallTokenCount++; + } + } + if (callTokenCount == endCallTokenCount) { + return true; + } + if (nextMeaningfulLine.containsToken("ON")) { + return false; + } + if (currentLine.containsToken("ON")) { + return false; + } + } if (CobolVerbs.isStartOrEndCobolVerb(nextMeaningfulLine.getTokens().get(0))) { return true; } @@ -386,7 +407,8 @@ public static List getUsingArgs(CobolLine line) { int usingIndex = line.getTokenIndexOf(Constants.USING_TOKEN); for (int i = usingIndex + 1; i < line.tokensSize(); i++) { - if (line.getToken(i).toUpperCase(Locale.ROOT).equals(Constants.END_CALL_TOKEN)) + if (line.getToken(i).toUpperCase(Locale.ROOT).equals(Constants.END_CALL_TOKEN) || + line.getToken(i).toUpperCase(Locale.ROOT).equals("ON")) break; if (argumentReferences.contains(line.getToken(i).toUpperCase(Locale.ROOT))) { currentArgumentReference = line.getToken(i).toUpperCase(); diff --git a/src/test/java/org/openmainframeproject/cobolcheck/ExpanderTest.java b/src/test/java/org/openmainframeproject/cobolcheck/ExpanderTest.java index 97b58e07..979223f3 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/ExpanderTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/ExpanderTest.java @@ -89,6 +89,125 @@ public void it_inserts_a_mock_correctly() throws IOException { assertEquals(Utilities.getTrimmedList(expected1), actual); } + + @Test + public void it_inserts_code_correctly_when_call_has_exception_handling_with_end_call_terminator() + throws IOException { + String s1 = " WORKING-STORAGE SECTION."; + String s2 = " PROCEDURE DIVISION."; + String s3 = " CALL \"PROGRAM\" USING VALUE-1"; + String s4 = " ON EXCEPTION"; + String s5 = " PERFORM 100-WELCOME"; + String s6 = " END-CALL."; + + String t1 = " TestSuite \"test\""; + + Mockito.when(mockedInterpreterReader.readLine()).thenReturn(s1, s2, s3, s4, s5, s6, null); + Mockito.when(mockedParserReader.readLine()).thenReturn(t1, null); + + generator = new Generator(interpreterController, writerController, testSuiteParserController); + + List actual = Utilities + .getTrimmedList(Utilities.removeBoilerPlateCode(writer.toString(), boilerPlateTags)); + + assertEquals(Utilities.getTrimmedList(expected2), actual); + } + + @Test + public void it_inserts_code_correctly_when_call_has_exception_handling_with_period_terminator() throws IOException { + String s1 = " WORKING-STORAGE SECTION."; + String s2 = " PROCEDURE DIVISION."; + String s3 = " CALL \"PROGRAM\" USING VALUE-1"; + String s4 = " ON EXCEPTION"; + String s5 = " PERFORM 100-WELCOME"; + String s6 = " ."; + + String t1 = " TestSuite \"test\""; + + Mockito.when(mockedInterpreterReader.readLine()).thenReturn(s1, s2, s3, s4, s5, s6, null); + Mockito.when(mockedParserReader.readLine()).thenReturn(t1, null); + + generator = new Generator(interpreterController, writerController, testSuiteParserController); + + List actual = Utilities + .getTrimmedList(Utilities.removeBoilerPlateCode(writer.toString(), boilerPlateTags)); + + assertEquals(Utilities.getTrimmedList(expected3), actual); + } + + @Test + public void it_inserts_code_correctly_when_call_has_different_exception_handling() + throws IOException { + String s1 = " WORKING-STORAGE SECTION."; + String s2 = " PROCEDURE DIVISION."; + String s3 = " CALL \"PROGRAM\" USING VALUE-1"; + String s4 = " ON EXCEPTION"; + String s5 = " DISPLAY \"HELLO WORLD\""; + String s6 = " ."; + + String t1 = " TestSuite \"test\""; + + Mockito.when(mockedInterpreterReader.readLine()).thenReturn(s1, s2, s3, s4, s5, s6, null); + Mockito.when(mockedParserReader.readLine()).thenReturn(t1, null); + + generator = new Generator(interpreterController, writerController, testSuiteParserController); + + List actual = Utilities + .getTrimmedList(Utilities.removeBoilerPlateCode(writer.toString(), boilerPlateTags)); + + assertEquals(Utilities.getTrimmedList(expected4), actual); + } + + @Test + public void it_inserts_code_correctly_when_call_has_a_new_call_as_exception_handling() + throws IOException { + String s1 = " WORKING-STORAGE SECTION."; + String s2 = " PROCEDURE DIVISION."; + String s3 = " CALL \"PROGRAM\" USING VALUE-1"; + String s4 = " ON EXCEPTION"; + String s5 = " CALL \"PROGRAM2\" USING VALUE-1"; + String s6 = " ON EXCEPTION"; + String s7 = " DISPLAY \"HELLO WORLD\""; + String s8 = " END-CALL"; + String s9 = " END-CALL"; + String s10 = " DISPLAY \"NO COMMENTS\""; + + String t1 = " TestSuite \"test\""; + + Mockito.when(mockedInterpreterReader.readLine()).thenReturn(s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, null); + Mockito.when(mockedParserReader.readLine()).thenReturn(t1, null); + + generator = new Generator(interpreterController, writerController, testSuiteParserController); + + List actual = Utilities + .getTrimmedList(Utilities.removeBoilerPlateCode(writer.toString(), boilerPlateTags)); + + assertEquals(Utilities.getTrimmedList(expected5), actual); + } + + @Test + public void it_inserts_code_correctly_when_each_call_in_series_has_an_exception_handling() + throws IOException { + String s1 = " WORKING-STORAGE SECTION."; + String s2 = " PROCEDURE DIVISION."; + String s3 = " CALL \"PROGRAM\" USING DATA-1 ON EXCEPTION"; + String s4 = " DISPLAY \"ERROR\"."; + String s5 = " CALL \"PROGRAM\" USING DATA-1 ON EXCEPTION"; + String s6 = " DISPLAY \"ERROR\"."; + + String t1 = " TestSuite \"test\""; + + Mockito.when(mockedInterpreterReader.readLine()).thenReturn(s1, s2, s3, s4, s5, s6, null); + Mockito.when(mockedParserReader.readLine()).thenReturn(t1, null); + + generator = new Generator(interpreterController, writerController, testSuiteParserController); + + List actual = Utilities + .getTrimmedList(Utilities.removeBoilerPlateCode(writer.toString(), boilerPlateTags)); + + assertEquals(Utilities.getTrimmedList(expected6), actual); + } + private String expected1 = " WORKING-STORAGE SECTION. " + Constants.NEWLINE + " *EXEC SQL INCLUDE TEXEM END-EXEC. " + Constants.NEWLINE + @@ -140,6 +259,194 @@ public void it_inserts_a_mock_correctly() throws IOException { " MOVE \"Value1\" to WS-FIELD-1 " + Constants.NEWLINE + " EXIT SECTION " + Constants.NEWLINE + " . " + Constants.NEWLINE; + private String expected2 = + " WORKING-STORAGE SECTION. " + Constants.NEWLINE + + " PROCEDURE DIVISION. " + Constants.NEWLINE + + " PERFORM UT-INITIALIZE " + Constants.NEWLINE + + " *============= \"test\" =============* " + Constants.NEWLINE + + " DISPLAY \"TESTSUITE:\" " + Constants.NEWLINE + + " DISPLAY \"test\" " + Constants.NEWLINE + + " MOVE \"test\" " + Constants.NEWLINE + + " TO UT-TEST-SUITE-NAME " + Constants.NEWLINE + + " UT-BEFORE-EACH. " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " *This is performed before each Test Case " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + + " . " + Constants.NEWLINE + + " " + Constants.NEWLINE + + " UT-AFTER-EACH. " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " *This is performed after each Test Case " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + + " . " + Constants.NEWLINE + + " " + Constants.NEWLINE + + " UT-INITIALIZE-MOCK-COUNT. " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " *Sets all global mock counters and expected count to 0 " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + + " . " + Constants.NEWLINE + + " " + Constants.NEWLINE + + " *CALL \"PROGRAM\" USING VALUE-1 " + Constants.NEWLINE + + " * ON EXCEPTION " + Constants.NEWLINE + + " * PERFORM 100-WELCOME " + Constants.NEWLINE + + " *END-CALL. " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + + " . "; + + private String expected3 = + " WORKING-STORAGE SECTION. " + Constants.NEWLINE + + " PROCEDURE DIVISION. " + Constants.NEWLINE + + " PERFORM UT-INITIALIZE " + Constants.NEWLINE + + " *============= \"test\" =============* " + Constants.NEWLINE + + " DISPLAY \"TESTSUITE:\" " + Constants.NEWLINE + + " DISPLAY \"test\" " + Constants.NEWLINE + + " MOVE \"test\" " + Constants.NEWLINE + + " TO UT-TEST-SUITE-NAME " + Constants.NEWLINE + + " UT-BEFORE-EACH. " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " *This is performed before each Test Case " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + + " . " + Constants.NEWLINE + + " " + Constants.NEWLINE + + " UT-AFTER-EACH. " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " *This is performed after each Test Case " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + + " . " + Constants.NEWLINE + + " " + Constants.NEWLINE + + " UT-INITIALIZE-MOCK-COUNT. " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " *Sets all global mock counters and expected count to 0 " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + + " . " + Constants.NEWLINE + + " " + Constants.NEWLINE + + " *CALL \"PROGRAM\" USING VALUE-1 " + Constants.NEWLINE + + " * ON EXCEPTION " + Constants.NEWLINE + + " * PERFORM 100-WELCOME. " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + + " . "; + + private String expected4 = + " WORKING-STORAGE SECTION. " + Constants.NEWLINE + + " PROCEDURE DIVISION. " + Constants.NEWLINE + + " PERFORM UT-INITIALIZE " + Constants.NEWLINE + + " *============= \"test\" =============* " + Constants.NEWLINE + + " DISPLAY \"TESTSUITE:\" " + Constants.NEWLINE + + " DISPLAY \"test\" " + Constants.NEWLINE + + " MOVE \"test\" " + Constants.NEWLINE + + " TO UT-TEST-SUITE-NAME " + Constants.NEWLINE + + " UT-BEFORE-EACH. " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " *This is performed before each Test Case " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + + " . " + Constants.NEWLINE + + " " + Constants.NEWLINE + + " UT-AFTER-EACH. " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " *This is performed after each Test Case " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + + " . " + Constants.NEWLINE + + " " + Constants.NEWLINE + + " UT-INITIALIZE-MOCK-COUNT. " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " *Sets all global mock counters and expected count to 0 " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + + " . " + Constants.NEWLINE + + " " + Constants.NEWLINE + + " *CALL \"PROGRAM\" USING VALUE-1 " + Constants.NEWLINE + + " * ON EXCEPTION " + Constants.NEWLINE + + " * DISPLAY \"HELLO WORLD\". " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + + " . "; + + private String expected5 = + " WORKING-STORAGE SECTION. " + Constants.NEWLINE + + " PROCEDURE DIVISION. " + Constants.NEWLINE + + " PERFORM UT-INITIALIZE " + Constants.NEWLINE + + " *============= \"test\" =============* " + Constants.NEWLINE + + " DISPLAY \"TESTSUITE:\" " + Constants.NEWLINE + + " DISPLAY \"test\" " + Constants.NEWLINE + + " MOVE \"test\" " + Constants.NEWLINE + + " TO UT-TEST-SUITE-NAME " + Constants.NEWLINE + + " UT-BEFORE-EACH. " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " *This is performed before each Test Case " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + + " . " + Constants.NEWLINE + + " " + Constants.NEWLINE + + " UT-AFTER-EACH. " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " *This is performed after each Test Case " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + + " . " + Constants.NEWLINE + + " " + Constants.NEWLINE + + " UT-INITIALIZE-MOCK-COUNT. " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " *Sets all global mock counters and expected count to 0 " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + + " . " + Constants.NEWLINE + + " " + Constants.NEWLINE + + " *CALL \"PROGRAM\" USING VALUE-1 " + Constants.NEWLINE + + " * ON EXCEPTION " + Constants.NEWLINE + + " * CALL \"PROGRAM2\" USING VALUE-1 " + Constants.NEWLINE + + " * ON EXCEPTION " + Constants.NEWLINE + + " * DISPLAY \"HELLO WORLD\" " + Constants.NEWLINE + + " * END-CALL " + Constants.NEWLINE + + " *END-CALL " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + + " DISPLAY \"NO COMMENTS\" " + Constants.NEWLINE; + + private String expected6 = + " WORKING-STORAGE SECTION. " + Constants.NEWLINE + + " PROCEDURE DIVISION. " + Constants.NEWLINE + + " PERFORM UT-INITIALIZE " + Constants.NEWLINE + + " *============= \"test\" =============* " + Constants.NEWLINE + + " DISPLAY \"TESTSUITE:\" " + Constants.NEWLINE + + " DISPLAY \"test\" " + Constants.NEWLINE + + " MOVE \"test\" " + Constants.NEWLINE + + " TO UT-TEST-SUITE-NAME " + Constants.NEWLINE + + " UT-BEFORE-EACH. " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " *This is performed before each Test Case " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + + " . " + Constants.NEWLINE + + " " + Constants.NEWLINE + + " UT-AFTER-EACH. " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " *This is performed after each Test Case " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + + " . " + Constants.NEWLINE + + " " + Constants.NEWLINE + + " UT-INITIALIZE-MOCK-COUNT. " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " *Sets all global mock counters and expected count to 0 " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + + " . " + Constants.NEWLINE + + " " + Constants.NEWLINE + + " *CALL \"PROGRAM\" USING DATA-1 ON EXCEPTION " + Constants.NEWLINE + + " * DISPLAY \"ERROR\". " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + + " . " + Constants.NEWLINE + + " *CALL \"PROGRAM\" USING DATA-1 ON EXCEPTION " + Constants.NEWLINE + + " * DISPLAY \"ERROR\". " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + + " . " + Constants.NEWLINE; + } From 7434c805c48fccee8250c26d7b76a4aae6f2b19f Mon Sep 17 00:00:00 2001 From: Akash Kumar Date: Sat, 26 Aug 2023 00:52:45 +0530 Subject: [PATCH 134/180] Add test for Exception in Calls Signed-off-by: Akash Kumar --- src/main/cobol/MOCKTEST.CBL | 39 ++++++++++++++++++++ src/test/cobol/MOCKTEST/MockCallTest.cut | 47 +++++++++++++++++++++++- 2 files changed, 85 insertions(+), 1 deletion(-) diff --git a/src/main/cobol/MOCKTEST.CBL b/src/main/cobol/MOCKTEST.CBL index 71c63ab8..284e728a 100644 --- a/src/main/cobol/MOCKTEST.CBL +++ b/src/main/cobol/MOCKTEST.CBL @@ -100,6 +100,45 @@ BY VALUE VALUE-2, VALUE-3 CALL 'PROG3' USING VALUE-1. + + 900-MAKE-CALL. + CALL 'PROGRAM' USING VALUE-1 + ON EXCEPTION + PERFORM 100-WELCOME + END-CALL. + + 1000-MAKE-CALL. + CALL 'PROGRAM' USING VALUE-1 + ON EXCEPTION + PERFORM 100-WELCOME + . + + 1100-MAKE-CALL. + CALL 'PROGRAM' USING VALUE-1 + ON EXCEPTION + CALL 'PROGRAM2' USING VALUE-1 + ON EXCEPTION + DISPLAY "EXCEPTION INSIDE ERROR HANDLING" + END-CALL + END-CALL. + + 1200-MAKE-CALL. + CALL 'PROGRAM' USING VALUE-1 + ON EXCEPTION + CALL 'PROGRAM2' USING VALUE-1 + ON EXCEPTION + DISPLAY "EXCEPTION IN INNER ERROR HANDLING" + . + + 1300-MAKE-CALL. + CALL 'PROGRAM' USING VALUE-1 + ON EXCEPTION + DISPLAY "EXCEPTION IN OUTER ERROR HANDLING" + END-CALL + CALL 'PROGRAM' USING VALUE-1 + ON EXCEPTION + DISPLAY "EXCEPTION IN INNER ERROR HANDLING" + . 999-END. GOBACK diff --git a/src/test/cobol/MOCKTEST/MockCallTest.cut b/src/test/cobol/MOCKTEST/MockCallTest.cut index 7a2df853..8b2b6463 100644 --- a/src/test/cobol/MOCKTEST/MockCallTest.cut +++ b/src/test/cobol/MOCKTEST/MockCallTest.cut @@ -138,4 +138,49 @@ MOVE "Local PROG1" TO VALUE-1 END-MOCK PERFORM 600-MAKE-CALL - EXPECT VALUE-1 TO BE "Global PROG1" \ No newline at end of file + EXPECT VALUE-1 TO BE "Global PROG1" + + TestCase "Mock of call with exception handling works" + MOCK CALL 'PROGRAM' USING + VALUE-1 + MOVE "worked" TO VALUE-1 + END-MOCK + MOVE 'TEST' TO VALUE-1 + PERFORM 900-MAKE-CALL + EXPECT VALUE-1 TO BE "worked" + + TestCase "Mock of call with exception handling ending with period works" + MOCK CALL 'PROGRAM' USING VALUE-1 + MOVE "worked" TO VALUE-1 + END-MOCK + MOVE 'TEST' TO VALUE-1 + PERFORM 1000-MAKE-CALL + EXPECT VALUE-1 TO BE "worked" + + TestCase "Mock of call with a new call as exception handling works" + MOCK CALL 'PROGRAM' USING VALUE-1 + MOVE "worked" TO VALUE-1 + END-MOCK + MOVE 'TEST' TO VALUE-1 + PERFORM 1100-MAKE-CALL + EXPECT VALUE-1 TO BE "worked" + + TestCase "Mock of call with a new call as exception handling ending with period works" + MOCK CALL 'PROGRAM' USING VALUE-1 + MOVE "worked" TO VALUE-1 + END-MOCK + MOCK CALL 'PROGRAM2' USING VALUE-1 + MOVE "worked" TO VALUE-1 + END-MOCK + MOVE 'TEST' TO VALUE-1 + PERFORM 1200-MAKE-CALL + EXPECT VALUE-1 TO BE "worked" + + + TestCase "Mock of calls in series with exception handling works" + MOCK CALL 'PROGRAM' USING VALUE-1 + MOVE "worked" TO VALUE-1 + END-MOCK + MOVE 'TEST' TO VALUE-1 + PERFORM 1300-MAKE-CALL + EXPECT VALUE-1 TO BE "worked" From 96c4c3a9107a454e34c0985dd8511f14555ca1e9 Mon Sep 17 00:00:00 2001 From: Akash Kumar Date: Sat, 26 Aug 2023 01:07:28 +0530 Subject: [PATCH 135/180] Fix java 8 compatibility issue Signed-off-by: Akash Kumar --- .../features/interpreter/CobolReader.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/CobolReader.java b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/CobolReader.java index 44c0faf1..f2794b3c 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/CobolReader.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/CobolReader.java @@ -106,16 +106,20 @@ CobolLine appendNextMeaningfulLineToCurrentLine(Boolean isFirstTime) throws IOEx nextMeaningfulLine.getTrimmedString(), tokenExtractor); } else { - int requiredSpaces = 0; + int requiredSpacesToFillCurrentLine = 0; if(isFirstTime) - requiredSpaces = maxLineLength - currentLine.getUnNumberedString().length(); + requiredSpacesToFillCurrentLine = maxLineLength - currentLine.getUnNumberedString().length(); else - requiredSpaces = maxLineLength - + requiredSpacesToFillCurrentLine = maxLineLength - (currentLine.getUnNumberedString().length() - previousLine.getUnNumberedString().length()); - previousLine = new CobolLine(currentLine.getOriginalString() + " ".repeat(requiredSpaces), tokenExtractor); + StringBuilder spacesToFillCurrentLine = new StringBuilder(); + for (int i = 0; i < requiredSpacesToFillCurrentLine; i++) { + spacesToFillCurrentLine.append(" "); + } + previousLine = new CobolLine(currentLine.getOriginalString() + spacesToFillCurrentLine.toString(), tokenExtractor); currentLine = new CobolLine( currentLine.getUnNumberedString() + - " ".repeat(requiredSpaces) + + spacesToFillCurrentLine.toString() + nextMeaningfulLine.getUnNumberedString(), tokenExtractor); } From 807ffb3e5f31d5a40ab0fab9d7ac633a310a89a1 Mon Sep 17 00:00:00 2001 From: Akash Kumar Date: Mon, 28 Aug 2023 12:15:12 +0530 Subject: [PATCH 136/180] Minor bug fix Signed-off-by: Akash Kumar --- src/test/cobol/MOCKTEST/MockCallTest.cut | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/test/cobol/MOCKTEST/MockCallTest.cut b/src/test/cobol/MOCKTEST/MockCallTest.cut index 8b2b6463..45cdafa9 100644 --- a/src/test/cobol/MOCKTEST/MockCallTest.cut +++ b/src/test/cobol/MOCKTEST/MockCallTest.cut @@ -170,12 +170,13 @@ MOVE "worked" TO VALUE-1 END-MOCK MOCK CALL 'PROGRAM2' USING VALUE-1 - MOVE "worked" TO VALUE-1 + MOVE "notworked" TO VALUE-1 END-MOCK MOVE 'TEST' TO VALUE-1 PERFORM 1200-MAKE-CALL EXPECT VALUE-1 TO BE "worked" - + VERIFY CALL 'PROGRAM' USING VALUE-1 HAPPENED ONCE + VERIFY CALL 'PROGRAM2' USING VALUE-1 NEVER HAPPENED TestCase "Mock of calls in series with exception handling works" MOCK CALL 'PROGRAM' USING VALUE-1 @@ -184,3 +185,4 @@ MOVE 'TEST' TO VALUE-1 PERFORM 1300-MAKE-CALL EXPECT VALUE-1 TO BE "worked" + VERIFY CALL 'PROGRAM' USING VALUE-1 HAPPENED 2 TIMES From efaacd46538cec5ac0f2657eb9cb084c8ac2549e Mon Sep 17 00:00:00 2001 From: Akash Kumar Date: Mon, 28 Aug 2023 18:24:01 +0530 Subject: [PATCH 137/180] Fix numeric field type wrong interpretation when line is split --- .../interpreter/InterpreterController.java | 1 + .../cobolcheck/services/cobolLogic/CobolLine.java | 11 +++++++++++ .../services/cobolLogic/Interpreter.java | 14 ++++++++++++-- .../cobolcheck/InterpreterControllerTest.java | 14 +++++++------- 4 files changed, 31 insertions(+), 9 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java index c9890cb3..28e75970 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java @@ -274,6 +274,7 @@ private void updateDependencies(CobolLine line) throws IOException { if (reader.isFlagSet(Constants.DATA_DIVISION)) { this.currentDataStructure = updateCurrentDataStructure(currentStatement, currentDataStructure); + line = line.convertCobolLinesToCobolLine(currentStatement); updateNumericFields(line); } diff --git a/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/CobolLine.java b/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/CobolLine.java index b23901ab..549681d0 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/CobolLine.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/CobolLine.java @@ -1,5 +1,7 @@ package org.openmainframeproject.cobolcheck.services.cobolLogic; +import org.openmainframeproject.cobolcheck.features.interpreter.StringTokenizerExtractor; + import java.util.Collection; import java.util.List; import java.util.Locale; @@ -111,4 +113,13 @@ private String removeSequenceNumberArea(String originalLine){ else return " " + originalLine.substring(index); } + + public CobolLine convertCobolLinesToCobolLine(List cobolLines) { + String line = ""; + for (CobolLine cobolLine : cobolLines){ + line += cobolLine.getUnNumberedString(); + } + TokenExtractor tokenExtractor = new StringTokenizerExtractor(); + return new CobolLine(line, tokenExtractor); + } } diff --git a/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java b/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java index e9f2e9cf..52d799d9 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java @@ -537,8 +537,18 @@ private static Integer determineCobolLevelNumber(String levelNumberString){ private static String[] extractStatementWords(List currentStatement){ String statementString = ""; - for(CobolLine loopLine: currentStatement){ - statementString += loopLine.getTrimmedString(); + boolean[] isContinuationLine = new boolean[currentStatement.size()]; + Arrays.fill(isContinuationLine, false); + for(int i = 1; i < currentStatement.size(); ++i) { + if(currentStatement.get(i).getTrimmedString().startsWith("-")){ + isContinuationLine[i] = true; + } + } + for(int i = 0; i < currentStatement.size(); ++i){ + statementString += currentStatement.get(i).getTrimmedString(); + if(!isContinuationLine[i]){ + statementString += " "; + } } statementString = statementString.trim().replace(Constants.PERIOD, ""); String[] statementWords = statementString.split("\\s+"); diff --git a/src/test/java/org/openmainframeproject/cobolcheck/InterpreterControllerTest.java b/src/test/java/org/openmainframeproject/cobolcheck/InterpreterControllerTest.java index 5aa9a6ee..8574c963 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/InterpreterControllerTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/InterpreterControllerTest.java @@ -730,19 +730,19 @@ public void it_updates_numeric_fields() throws IOException { String str4 = " 05 OUTPUT-FILE-STATUS PIC XX."; String str5 = " 88 OUTPUT-OK VALUE '00'."; String str6 = " 05."; - String str7 = " 08 WS-COUNT PIC S9(5) COMP-3."; - String str8 = " 05 WS-DISPLAY-NUM2 PIC 9(04) OCCURS"; - String str9 = " 20."; - String str10 = " 05 TEMP-VAL PIC X(200) VALUE SPACES."; - String str11 = " 77 CHAR-CT PIC S9(3) COMP."; + String str7 = " 08 WS-COUNT "; + String str8 = " PIC S9(5) COMP-3."; + String str9 = " 05 WS-DISPLAY-NUM2 PIC 9(04) OCCURS"; + String str10 = " 20."; + String str11 = " 05 TEMP-VAL PIC X(200) VALUE SPACES."; + String str12 = " 77 CHAR-CT PIC S9(3) COMP."; - Mockito.when(mockedReader.readLine()).thenReturn(str1, str2, str3, str4, str5, str6, str7, str8, str9, str10, str11, null); + Mockito.when(mockedReader.readLine()).thenReturn(str1, str2, str3, str4, str5, str6, str7, str8, str9, str10, str11, str12, null); while (interpreterController.interpretNextLine() != null){ interpreterController.interpretNextLine(); } - assertEquals("PACKED_DECIMAL", interpreterController.getNumericFieldDataTypeFor("WS-COUNT").name()); assertEquals("DISPLAY_NUMERIC", From 98a5ee3e05e4134352e96f0b266bd849ffb732a5 Mon Sep 17 00:00:00 2001 From: Akash Kumar Date: Tue, 29 Aug 2023 19:35:54 +0530 Subject: [PATCH 138/180] Fix Typo --- .../cobolcheck/features/interpreter/CobolReader.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/CobolReader.java b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/CobolReader.java index f2794b3c..d706c6bb 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/CobolReader.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/CobolReader.java @@ -22,7 +22,7 @@ public class CobolReader { private List currentStatement; private int lineNumber; - private String lineJustEneterd = null; + private String lineJustEntered = null; private final int maxLineLength = 72; public CobolReader(BufferedReader sourceReader) { @@ -39,7 +39,7 @@ public CobolReader(BufferedReader sourceReader) { CobolLine getPreviousMeaningfulLine() { return previousMeaningfulLine; } List getCurrentStatement(){ return currentStatement; } - public String getLineJustEntered() { return lineJustEneterd; } + public String getLineJustEntered() { return lineJustEntered; } boolean hasStatementBeenRead(){ return currentStatement != null; } int getLineNumber() { return lineNumber; } @@ -91,7 +91,7 @@ private void setPreviousMeaningfulLine(){ */ void updateState() throws IOException { CobolLine nextLine = peekNextMeaningfulLine(); - lineJustEneterd = Interpreter.setFlagsForCurrentLine(currentLine, nextLine, state); + lineJustEntered = Interpreter.setFlagsForCurrentLine(currentLine, nextLine, state); } void close() throws IOException { From 4ecaa8f73e01be4a10d8e365259d3867dece2d03 Mon Sep 17 00:00:00 2001 From: issacto Date: Tue, 29 Aug 2023 17:09:22 +0100 Subject: [PATCH 139/180] update test tree testing Signed-off-by: issacto --- .../ALPHA/AlphaExpectationsTest.cut | 66 +++++++++++ .../client/src/Helpers/ExtensionHelper.ts | 5 + vs-code-extension/client/src/extension.ts | 102 ++++++++-------- .../client/src/services/CobolCheckLauncher.ts | 31 ++++- .../client/src/services/TestTree.ts | 109 +++++++++--------- 5 files changed, 208 insertions(+), 105 deletions(-) create mode 100644 src/test/cobol/ALPHA-COPY/ALPHA/AlphaExpectationsTest.cut diff --git a/src/test/cobol/ALPHA-COPY/ALPHA/AlphaExpectationsTest.cut b/src/test/cobol/ALPHA-COPY/ALPHA/AlphaExpectationsTest.cut new file mode 100644 index 00000000..ea303e35 --- /dev/null +++ b/src/test/cobol/ALPHA-COPY/ALPHA/AlphaExpectationsTest.cut @@ -0,0 +1,66 @@ + TestSuite "Tests of alphanumeric expectations" + + TestCase "Equality with an alphanumeric literal using TO BE" + move "value1" to ws-field-1 + Expect ws-field-1 to be "value1" + + TestCase "Equality with an alphanumeric literal using TO EQUAL" + move "value2" to ws-field-1 + Expect ws-field-1 to equal "value2" + + TestCase "Equality with an alphanumeric literal using '='" + move "value3" to ws-field-1 + Expect ws-field-1 = "value3" + + TestCase "Equality with an alphanumeric literal and reference modification" + move "Hello, World!" to ws-field-2 + Expect ws-field-2(8:5) to be "World" + + TestCase "Non-equality with an alphanumeric literal using TO BE" + move "value4" to ws-field-1 + Expect ws-field-1 not to be "value1" + + TestCase "Non-equality with an alphanumeric literal using TO EQUAL" + move "value5" to ws-field-1 + Expect ws-field-1 not to equal "value1" + + TestCase "Non-equality with an alphanumeric literal using '!='" + move "value6" to ws-field-1 + Expect ws-field-1 != "value1" + + TestCase "Non-equality with an alphanumeric literal and reference modification" + move "Hello, World!" to ws-field-2 + Expect ws-field-2(8:6) not to be "World" + + TestCase "Greater-than sign with an alphanumeric literal" + move "Beta" to ws-field-1 + move "Alpha" to ws-field-2 + Expect ws-field-1 > "Alpha" + + TestCase "Less-than sign with an alphanumeric literal" + move "Beta" to ws-field-1 + move "Alpha" to ws-field-2 + Expect ws-field-2 < "Beta" + + TestCase "Not greater-than sign with an alphanumeric literal" + move "Beta" to ws-field-1 + move "Alpha" to ws-field-2 + Expect ws-field-2 not > "Beta" + + TestCase "Not less-than sign with an alphanumeric literal" + move "Beta" to ws-field-1 + move "Alpha" to ws-field-2 + Expect ws-field-1 not < "Alpha" + + TestCase "Display numeric" + move 6 to ws-display-numeric + expect ws-display-numeric to be 6 + + TestCase "Variable must be SPACE" + move space to ws-field-1 + expect ws-field-1 to be space + + TestCase "Variable must be SPACES" + move spaces to ws-field-1 + expect ws-field-1 to be spaces + \ No newline at end of file diff --git a/vs-code-extension/client/src/Helpers/ExtensionHelper.ts b/vs-code-extension/client/src/Helpers/ExtensionHelper.ts index 324669ca..416f3af5 100644 --- a/vs-code-extension/client/src/Helpers/ExtensionHelper.ts +++ b/vs-code-extension/client/src/Helpers/ExtensionHelper.ts @@ -15,6 +15,7 @@ export async function handleCobolCheckOut(output : CobParser.CobolCheckOutputPar let htmlResult:string = ""; switch(output.state){ case CobParser.OutputState.NoIssues: + console.log("NO ISSUES") testResultFile = appendPath(vsCodeInstallDir, await getConfigurationValueFor(configPath, 'test.results.file')); htmlResult = await getTextFromFile(testResultFile + '.html'); showWebWiev('Test Results - ' + getCurrentProgramName(), htmlResult) @@ -22,6 +23,7 @@ export async function handleCobolCheckOut(output : CobParser.CobolCheckOutputPar break; case CobParser.OutputState.TestFailed: + console.log("TEST FAILES") testResultFile = appendPath(vsCodeInstallDir, await getConfigurationValueFor(configPath, 'test.results.file')); htmlResult = await getTextFromFile(testResultFile + '.html'); showWebWiev('Test Results - ' + getCurrentProgramName(), htmlResult) @@ -29,6 +31,7 @@ export async function handleCobolCheckOut(output : CobParser.CobolCheckOutputPar break; case CobParser.OutputState.SyntaxWarnings: + console.log("SYNTAX WARNINGS") testResultFile = appendPath(vsCodeInstallDir, await getConfigurationValueFor(configPath, 'test.results.file')); htmlResult = await getTextFromFile(testResultFile + '.html'); let warningSpan:string = getFormattedHtmlSpan(output.outputText.substring(0, output.outputText.length - 2), true) @@ -40,6 +43,7 @@ export async function handleCobolCheckOut(output : CobParser.CobolCheckOutputPar break; case CobParser.OutputState.SyntaxError: + console.log("SYNTAX ERROR") vscode.window.showErrorMessage("Cobol Check stopped due to Syntax error(s) in one or more test suites"); showWebWiev('Test Results - ' + getCurrentProgramName(), parseAsHtmlDocument(output.outputText, true)) resolve(false); @@ -91,6 +95,7 @@ function showWebWiev(title: string, html : string){ } +// Not used export async function handleCobolCheckOutput(output : CobParser.CobolCheckOutputParser) : Promise{ return new Promise(async resolve => { switch(output.state){ diff --git a/vs-code-extension/client/src/extension.ts b/vs-code-extension/client/src/extension.ts index 21ba9ee2..061cf586 100644 --- a/vs-code-extension/client/src/extension.ts +++ b/vs-code-extension/client/src/extension.ts @@ -9,7 +9,7 @@ import * as vscode from 'vscode'; import { workspace, ExtensionContext, window} from 'vscode'; import { getConfigurationMap, getConfigurationValueFor, resetConfigurations, setConfiguration } from './services/CobolCheckConfiguration'; -import { appendPath, getCobolCheckRunArgumentsBasedOnCurrentFile, getCobolProgramPathForGivenContext, getCurrentProgramName, getFileName, getTextFromFile, getRootFolder, getSourceFolderContextPath, runCobolCheck } from './services/CobolCheckLauncher'; +import { appendPath, getCobolCheckRunArgumentsBasedOnCurrentFile, getCobolProgramPathForGivenContext, getCurrentProgramName, getFileName, getTextFromFile, getRootFolder, getSourceFolderContextPath, runCobolCheck, getIsInsideTestSuiteDirectory1 } from './services/CobolCheckLauncher'; import { startCutLanguageClientServer, stopCutLanguageClientServer } from './services/cutLanguageClientServerSetup'; import { ResultWebView } from './services/ResultWebView'; @@ -23,11 +23,9 @@ let configPath = appendPath(externalVsCodeInstallationDir, 'Cobol-check/config.p let defaultConfigPath = appendPath(externalVsCodeInstallationDir, 'Cobol-check/default.properties'); let cobolCheckJarPath = appendPath(externalVsCodeInstallationDir, 'Cobol-check/bin/cobol-check-0.2.8.jar'); -let lastCurrentFile = null; -let cutLanguageRunning = false; -export function activate(context: ExtensionContext) { +export async function activate(context: ExtensionContext) { startCutLanguageClientServer(context); const provider = new ResultWebView(context.extensionUri); @@ -49,14 +47,6 @@ export function activate(context: ExtensionContext) { //Getting arguments to run let applicationSourceDir = await getConfigurationValueFor(configPath, 'application.source.directory'); let argument : string = getCobolCheckRunArgumentsBasedOnCurrentFile(externalVsCodeInstallationDir, configPath, applicationSourceDir, vscode.window.activeTextEditor.document.uri.fsPath); - // console.log("externalVsCodeInstallationDir") - // console.log(externalVsCodeInstallationDir) - // console.log("configPath") - // console.log(configPath) - // console.log("applicationSourceDir") - // console.log(applicationSourceDir) - // console.log("argument") - // console.log(argument) if (argument === null) return; progress.report({ message: 'Running tests' }) @@ -99,12 +89,12 @@ export function activate(context: ExtensionContext) { return startTestRun(request); } - const l = fileChangedEmitter.event(uri => { - + const l = fileChangedEmitter.event(async uri => { + const res = await getOrCreateFile(ctrl, uri) return startTestRun( new vscode.TestRunRequest2( - [getOrCreateFile(ctrl, uri).file], + [res.file], undefined, request.profile, true @@ -128,22 +118,16 @@ export function activate(context: ExtensionContext) { const data = testData.get(test); if (data instanceof TestCase - || (data instanceof TestFile ) - || (data instanceof TestHeading && test.children.size==0 - ) + || (data instanceof TestFile && (!data.getIsInsideTestSuiteDirectory() || data.getIsTestSuiteDirectory()) ) + || (data instanceof TestHeading && test.children.size==0) ) { run.enqueued(test); queue.push({ test, data }); } - // else { - // if (data instanceof TestFile && data.isDirectory(test.uri.fsPath)) { - // // await data.updateFromDisk(ctrl, test); - // await discoverTests(gatherTestItems(test)); - // } - - // // await discoverTests(gatherTestItems(test)); - - // } + else if (data instanceof TestFile && data.getIsInsideTestSuiteDirectory()){ + await discoverTests(gatherTestItems(test)) + } + if(!(data instanceof TestFile) || !data.getIsDirectory()) { if (test.uri && !coveredLines.has(test.uri.toString())) { @@ -177,7 +161,7 @@ export function activate(context: ExtensionContext) { await data.run(test, run); } - if(!( data instanceof TestFile)){ + if(!(data instanceof TestFile)){ const lineNo = test.range!.start.line; const fileCoverage = coveredLines.get(test.uri!.toString()); if (fileCoverage) { @@ -220,14 +204,13 @@ export function activate(context: ExtensionContext) { context.subscriptions.push(...startWatchingWorkspace(ctrl, fileChangedEmitter)); return; } - const data = testData.get(item); if (data instanceof TestFile) { await data.updateFromDisk(ctrl, item); } }; - function updateNodeForDocument(e: vscode.TextDocument) { + async function updateNodeForDocument(e: vscode.TextDocument) { if (e.uri.scheme !== 'file') { return; } @@ -235,12 +218,12 @@ export function activate(context: ExtensionContext) { return; } - const { file, data } = getOrCreateFile(ctrl, e.uri); + const { file, data } = await getOrCreateFile(ctrl, e.uri); data.updateFromContents(ctrl, e.getText(), file); } for (const document of vscode.workspace.textDocuments) { - updateNodeForDocument(document); + await updateNodeForDocument(document); } context.subscriptions.push( @@ -253,52 +236,71 @@ export function deactivate() { stopCutLanguageClientServer(); } -function createDirItems( controller:vscode.TestController, uri: vscode.Uri){ + +async function createDirItems( controller:vscode.TestController, uri: vscode.Uri){ + // if it is inside test suite directory e.g. src/test is inside src/test/cobol + var isInsideTestSuite: boolean = await getIsInsideTestSuiteDirectory1(uri.fsPath) + // TODO: Windows may not work const dirArr = vscode.workspace.asRelativePath(uri.fsPath).split("/") const rootDir = uri.fsPath.replace(vscode.workspace.asRelativePath(uri.fsPath),"") const rootUri = rootDir+dirArr[0] + let tmpUri = vscode.Uri.file(rootUri); - var file :vscode.TestItem = null; - controller.createTestItem var data = null + if(!controller.items.get(rootUri)){ file = controller.createTestItem(rootUri, dirArr[0], tmpUri); controller.items.add(file); - data = new TestFile(rootUri); + data = new TestFile(); + data.setDirectoryDetails(rootUri) file.canResolveChildren = true; testData.set(file, data); - + if(isInsideTestSuite) data.setIsInsideTestSuiteDirectory(true) } else{ file = controller.items.get(rootUri) data = testData.get(file) + if(isInsideTestSuite) data.setIsInsideTestSuiteDirectory(true) } if(dirArr.length==1) return {file,data}; - var prevFile: vscode.TestItem = file var tmpDir = rootUri var tmpFile = null var tmpData = null + for(var i =1;i items=items.concat(gatherTestItems(item))); + } + else if(data instanceof TestFile){ items.push(test) } else if(data instanceof TestHeading && test.children.size==0){ @@ -372,7 +380,7 @@ function getWorkspaceTestPatterns() { async function findInitialFiles(controller: vscode.TestController, pattern: vscode.GlobPattern) { for (const file of await vscode.workspace.findFiles(pattern)) { - getOrCreateFile(controller, file); + await getOrCreateFile(controller, file); } } @@ -386,7 +394,7 @@ function startWatchingWorkspace(controller: vscode.TestController, fileChangedEm fileChangedEmitter.fire(uri); }); watcher.onDidChange(async uri => { - const { file, data } = getOrCreateFile(controller, uri); + const { file, data } = await getOrCreateFile(controller, uri); if (data.didResolve) { await data.updateFromDisk(controller, file); } diff --git a/vs-code-extension/client/src/services/CobolCheckLauncher.ts b/vs-code-extension/client/src/services/CobolCheckLauncher.ts index 35921c57..b7a41a00 100644 --- a/vs-code-extension/client/src/services/CobolCheckLauncher.ts +++ b/vs-code-extension/client/src/services/CobolCheckLauncher.ts @@ -2,6 +2,7 @@ import * as vscode from 'vscode'; import { integer } from 'vscode-languageclient'; import * as LOGGER from '../utils/Logger' import * as CobParser from './CobolCheckOutputParser' +import { getConfigurationValueFor } from './CobolCheckConfiguration'; const windowsPlatform = 'Windows'; const macPlatform = 'MacOS'; @@ -12,6 +13,7 @@ let currentPlatform = getOS(); let currentProgramName : string = null; let externalVsCodeInstallationDir = vscode.extensions.getExtension("openmainframeproject.cobol-check-extension").extensionPath; +let configPath = appendPath(externalVsCodeInstallationDir, 'Cobol-check/config.properties'); export function getCobolCheckRunArgumentsBasedOnCurrentFile(vsCodeInstallPath : string, configPath : string, sourceDir : string, filePath:string) : string { @@ -37,15 +39,32 @@ export function getCobolCheckRunArgumentsBasedOnCurrentDirectory(vsCodeInstallPa const srcFolderName = getRootFolder(sourceDir); const srcFolderContext : string = getSourceFolderContextPath(filePath, srcFolderName); - if (srcFolderContext === null) return null; const cobolSourcePath = appendPath(srcFolderContext, sourceDir); LOGGER.log("Found source folder path: " + cobolSourcePath, LOGGER.INFO) //Getting program name based on current context + let programName : string = getFileName(filePath, false); + currentProgramName = programName; + LOGGER.log("Found source directory name: " + programName, LOGGER.INFO) + return '-p ' + programName + ' -c "' + configPath + '" -s "' + srcFolderContext + '" ' + + '-r "' + vsCodeInstallPath + '"'; +} + +export function getCobolCheckRunArgumentsBasedOnSuiteDirectory(vsCodeInstallPath : string, configPath : string, sourceDir : string, testFilesPaths:string[]) : string { + - let programName : string = filePath.split("/").pop(); + const srcFolderName = getRootFolder(sourceDir); + const srcFolderContext : string = getSourceFolderContextPath(testFilesPaths[0], srcFolderName); + if (srcFolderContext === null) return null; + const cobolSourcePath = appendPath(srcFolderContext, sourceDir); + + LOGGER.log("Found source folder path: " + cobolSourcePath, LOGGER.INFO) + //Getting program name based on current context + + let programName: string = testFilesPaths.map(item => getFileName(item, false)).join(' '); currentProgramName = programName; + LOGGER.log("Found source directory name: " + programName, LOGGER.INFO) return '-p ' + programName + ' -c "' + configPath + '" -s "' + srcFolderContext + '" ' + '-r "' + vsCodeInstallPath + '"'; @@ -221,6 +240,12 @@ function getOS() { return platform; } +export async function getIsInsideTestSuiteDirectory1(input: string): Promise{ + let testSuiteDir = await getConfigurationValueFor(configPath, 'test.suite.directory'); + if(input.includes(testSuiteDir)) return true + else return false +} + function getFileSeperatorForOS(platform : string){ if (platform === windowsPlatform) return '\\'; else return '/'; @@ -264,4 +289,4 @@ function findFile(name : String, extensions : string[], path : string){ } } return null; -} \ No newline at end of file +} diff --git a/vs-code-extension/client/src/services/TestTree.ts b/vs-code-extension/client/src/services/TestTree.ts index 65d9668d..ccc56cf0 100644 --- a/vs-code-extension/client/src/services/TestTree.ts +++ b/vs-code-extension/client/src/services/TestTree.ts @@ -4,8 +4,8 @@ import { parseMarkdown } from './CobolCheckInputParser'; import internal = require('stream'); import { integer } from 'vscode-languageclient'; import { getConfigurationValueFor } from './CobolCheckConfiguration'; -import { appendPath, getCobolCheckRunArgumentsBasedOnCurrentDirectory, getCobolCheckRunArgumentsBasedOnCurrentFile, runCobolCheck } from './CobolCheckLauncher'; -import { handleCobolCheckOut, handleCobolCheckOutput } from '../Helpers/ExtensionHelper'; +import { appendPath, getCobolCheckRunArgumentsBasedOnCurrentDirectory, getCobolCheckRunArgumentsBasedOnCurrentFile, getCobolCheckRunArgumentsBasedOnSuiteDirectory, runCobolCheck } from './CobolCheckLauncher'; +import { handleCobolCheckOut } from '../Helpers/ExtensionHelper'; const textDecoder = new TextDecoder('utf-8'); let externalVsCodeInstallationDir = vscode.extensions.getExtension("openmainframeproject.cobol-check-extension").extensionPath; @@ -40,9 +40,12 @@ export class TestFile { public didResolve = false; private isDirectory:boolean; + private isInsideTestSuiteDirectory:boolean; + private isTestSuiteDirectory:boolean; + // private isbeforeTestSuiteDirectory:boolean; - constructor(path:string) { - this.setDirectory(path) + constructor() { + // this.setDirectoryDetails(path) } @@ -86,10 +89,6 @@ export class TestFile { onTest: (range, label) => { const parent = ancestors[ancestors.length - 1]; const data = new TestCase(label,content); - // console.log("label") - // console.log(label) - // console.log("content") - // console.log(content) const id = `${item.uri}/${data.getLabel()}`; const tcase = controller.createTestItem(id, data.getLabel(), item.uri); testData.set(tcase, data); @@ -111,39 +110,76 @@ export class TestFile { }); ascend(fileDepth) - // if(isFile) ascend(1) - // else ascend(0) // finish and assign children for all remaining items } - public setDirectory(fileName:string){ - if(fileName.includes(".cut")) this.isDirectory=false - else this.isDirectory=true + public async setDirectoryDetails(fileName:string){ + this.isTestSuiteDirectory=false + this.isDirectory=true + this.isInsideTestSuiteDirectory=false + // if the file is a directory + if(fileName.endsWith(".cut")) this.isDirectory=false + // if the file is source directory + let testSuiteDir = await getConfigurationValueFor(configPath, 'test.suite.directory'); + if(fileName.endsWith(testSuiteDir) ) { + this.isTestSuiteDirectory=true + } } public getIsDirectory(){ return this.isDirectory; } + public getIsInsideTestSuiteDirectory(){ + return this.isInsideTestSuiteDirectory; + } + + public getIsTestSuiteDirectory(){ + return this.isTestSuiteDirectory; + } + + public setIsInsideTestSuiteDirectory(value: boolean){ + this.isInsideTestSuiteDirectory = value; + } + + + async run(item: vscode.TestItem, options: vscode.TestRun): Promise { let applicationSourceDir = await getConfigurationValueFor(configPath, 'application.source.directory'); let argument : string; const data = testData.get(item); if(data instanceof TestFile && ! data.getIsDirectory()){ + // run only one test file argument = getCobolCheckRunArgumentsBasedOnCurrentFile(externalVsCodeInstallationDir, configPath, applicationSourceDir, item.uri.fsPath ); - }else{ - argument = getCobolCheckRunArgumentsBasedOnCurrentDirectory(externalVsCodeInstallationDir, configPath, applicationSourceDir, item.uri.fsPath ); + } + else{ + if( data instanceof TestFile && data.getIsInsideTestSuiteDirectory()){ + // run all test cases inside a program + const testFilesPaths = this.getFolderNamesInsideTestSuiteDirectory(item) + argument = getCobolCheckRunArgumentsBasedOnSuiteDirectory(externalVsCodeInstallationDir, configPath, applicationSourceDir, testFilesPaths ); + }else{ + // run all test cases inside default source directory + argument = getCobolCheckRunArgumentsBasedOnCurrentDirectory(externalVsCodeInstallationDir, configPath, applicationSourceDir, item.uri.fsPath ); + } } const start = Date.now(); let output = await runCobolCheck(cobolCheckJarPath, argument) const result = await handleCobolCheckOut(output,externalVsCodeInstallationDir,configPath); const duration = Date.now() - start; + if(result) options.passed(item, duration); else{ - const message = vscode.TestMessage.diff(`Expected ${item.label}`, String("123"), String("223")); + // TODO: identify message + const message = vscode.TestMessage.diff(`Expected ${item.label}`, String("1"), String("0")); options.failed(item, message, duration) } } + getFolderNamesInsideTestSuiteDirectory(item: vscode.TestItem): string [] { + var paths = [] + item.children.forEach(child=>paths.push(child.uri.fsPath)) + return paths + } + } export class TestHeading { @@ -153,16 +189,10 @@ export class TestHeading { ) { } async run(item: vscode.TestItem, options: vscode.TestRun): Promise { - // let applicationSourceDir = await getConfigurationValueFor(configPath, 'application.source.directory'); - // let argument : string = getCobolCheckRunArgumentsBasedOnCurrentFile(externalVsCodeInstallationDir, configPath, applicationSourceDir); - // const output = runCobolCheck() // let applicationSourceDir = await getConfigurationValueFor(configPath, 'application.source.directory'); - // let argument : string = getCobolCheckRunArgumentsBasedOnCurrentFile(externalVsCodeInstallationDir, configPath, applicationSourceDir, item.uri.fsPath ); - // let output = await runCobolCheck(cobolCheckJarPath, argument) - const start = Date.now(); await new Promise(resolve => setTimeout(resolve, 1000 + Math.random() * 1000)); const duration = Date.now() - start; - const message = vscode.TestMessage.diff(`Expected ${item.label}`, String("123"), String("This should not run")); + // const message = vscode.TestMessage.diff(`Expected ${item.label}`, String("123"), String("This should not run")); // options.failed(item, message ,duration); options.passed(item, duration); } @@ -179,41 +209,10 @@ export class TestCase { } async run(item: vscode.TestItem, options: vscode.TestRun): Promise { - // let applicationSourceDir = await getConfigurationValueFor(configPath, 'application.source.directory'); - // let argument : string = getCobolCheckRunArgumentsBasedOnCurrentFile(externalVsCodeInstallationDir, configPath, applicationSourceDir); - // const output = runCobolCheck() - - // Paste later - // const start = Date.now(); - // let applicationSourceDir = await getConfigurationValueFor(configPath, 'application.source.directory'); - // let argument : string = getCobolCheckRunArgumentsBasedOnCurrentFile(externalVsCodeInstallationDir, configPath, applicationSourceDir, item.uri.fsPath); - - // // TODO here - // console.log("argument!!!") - // console.log(this.label) // test case name - // console.log(item.uri.fsPath) // file path - // console.log("externalVsCodeInstallationDir") - // console.log(externalVsCodeInstallationDir) - // console.log("configPath") - // console.log(configPath) - // console.log("applicationSourceDir") - // console.log(applicationSourceDir) - // console.log("argument") - // console.log(argument) - // let output = await runCobolCheck(cobolCheckJarPath, argument) - // const result = await handleCobolCheckOutput(output); - // // await new Promise(resolve => setTimeout(resolve, 1000 + Math.random() * 1000)); - // const duration = Date.now() - start; - // if(result) options.passed(item, duration); - // else{ - // const message = vscode.TestMessage.diff(`Expected ${item.label}`, String("123"), String("223")); - // options.failed(item, message, duration) - // } - const start = Date.now(); await new Promise(resolve => setTimeout(resolve, 1000 + Math.random() * 1000)); const duration = Date.now() - start; - const message = vscode.TestMessage.diff(`Expected ${item.label}`, String("123"), String("This should not run")); + // const message = vscode.TestMessage.diff(`Expected ${item.label}`, String("123"), String("This should not run")); // options.failed(item, message ,duration); options.passed(item, duration); } From 8bfb55453326080670914977e75ba01a80969e13 Mon Sep 17 00:00:00 2001 From: issacto Date: Wed, 30 Aug 2023 12:34:10 +0100 Subject: [PATCH 140/180] clean and add comment Signed-off-by: issacto --- vs-code-extension/client/src/extension.ts | 41 +++++++++---------- .../client/src/services/CobolCheckLauncher.ts | 11 ++--- .../client/src/services/TestTree.ts | 22 +++++----- 3 files changed, 36 insertions(+), 38 deletions(-) diff --git a/vs-code-extension/client/src/extension.ts b/vs-code-extension/client/src/extension.ts index 061cf586..18eda8f3 100644 --- a/vs-code-extension/client/src/extension.ts +++ b/vs-code-extension/client/src/extension.ts @@ -9,7 +9,7 @@ import * as vscode from 'vscode'; import { workspace, ExtensionContext, window} from 'vscode'; import { getConfigurationMap, getConfigurationValueFor, resetConfigurations, setConfiguration } from './services/CobolCheckConfiguration'; -import { appendPath, getCobolCheckRunArgumentsBasedOnCurrentFile, getCobolProgramPathForGivenContext, getCurrentProgramName, getFileName, getTextFromFile, getRootFolder, getSourceFolderContextPath, runCobolCheck, getIsInsideTestSuiteDirectory1 } from './services/CobolCheckLauncher'; +import { appendPath, getCobolCheckRunArgumentsBasedOnCurrentFile, getCobolProgramPathForGivenContext, getCurrentProgramName, getFileName, getTextFromFile, getRootFolder, getSourceFolderContextPath, runCobolCheck, getIsInsideTestSuiteDirectory1, getOS, getFileSeperatorForOS } from './services/CobolCheckLauncher'; import { startCutLanguageClientServer, stopCutLanguageClientServer } from './services/cutLanguageClientServerSetup'; import { ResultWebView } from './services/ResultWebView'; @@ -22,7 +22,7 @@ let externalVsCodeInstallationDir = vscode.extensions.getExtension("openmainfram let configPath = appendPath(externalVsCodeInstallationDir, 'Cobol-check/config.properties'); let defaultConfigPath = appendPath(externalVsCodeInstallationDir, 'Cobol-check/default.properties'); let cobolCheckJarPath = appendPath(externalVsCodeInstallationDir, 'Cobol-check/bin/cobol-check-0.2.8.jar'); - +let currentPlatform = getOS(); export async function activate(context: ExtensionContext) { @@ -194,7 +194,7 @@ export async function activate(context: ExtensionContext) { }; ctrl.refreshHandler = async () => { - await Promise.all(getWorkspaceTestPatterns().map(({ pattern }) => findInitialFiles(ctrl, pattern))); + await Promise.all(getWorkspaceTestPatterns().map(({ pattern }) => findRootFiles(ctrl, pattern))); }; ctrl.createRunProfile('Run Tests', vscode.TestRunProfileKind.Run, runHandler, true, undefined, true); @@ -237,12 +237,11 @@ export function deactivate() { } -async function createDirItems( controller:vscode.TestController, uri: vscode.Uri){ - - // if it is inside test suite directory e.g. src/test is inside src/test/cobol +async function createDirectoryItems( controller:vscode.TestController, uri: vscode.Uri){ + // Create TestFile for each directory + var isInsideTestSuite: boolean = await getIsInsideTestSuiteDirectory1(uri.fsPath) - // TODO: Windows may not work - const dirArr = vscode.workspace.asRelativePath(uri.fsPath).split("/") + const dirArr = vscode.workspace.asRelativePath(uri.fsPath).split(getFileSeperatorForOS(currentPlatform)) const rootDir = uri.fsPath.replace(vscode.workspace.asRelativePath(uri.fsPath),"") const rootUri = rootDir+dirArr[0] @@ -272,8 +271,7 @@ async function createDirItems( controller:vscode.TestController, uri: vscode.Uri var tmpData = null for(var i =1;i items=items.concat(gatherTestItems(item))); } else if(data instanceof TestFile){ @@ -377,8 +372,8 @@ function getWorkspaceTestPatterns() { pattern: new vscode.RelativePattern(workspaceFolder, '**/*.cut'), })); } - -async function findInitialFiles(controller: vscode.TestController, pattern: vscode.GlobPattern) { + +async function findRootFiles(controller: vscode.TestController, pattern: vscode.GlobPattern) { for (const file of await vscode.workspace.findFiles(pattern)) { await getOrCreateFile(controller, file); } @@ -402,9 +397,11 @@ function startWatchingWorkspace(controller: vscode.TestController, fileChangedEm }); watcher.onDidDelete(uri => controller.items.delete(uri.toString())); - findInitialFiles(controller, pattern); + findRootFiles(controller, pattern); return watcher; }); } + + diff --git a/vs-code-extension/client/src/services/CobolCheckLauncher.ts b/vs-code-extension/client/src/services/CobolCheckLauncher.ts index b7a41a00..66fb4bb6 100644 --- a/vs-code-extension/client/src/services/CobolCheckLauncher.ts +++ b/vs-code-extension/client/src/services/CobolCheckLauncher.ts @@ -87,9 +87,9 @@ export async function runCobolCheck(path : string, commandLineArgs : string) : P LOGGER.log("Running Cobol Check with arguments: " + commandLineArgs, LOGGER.INFO) try{ var exec = require('child_process').exec; - // var tmpStr = "cd /Users/issac/Documents/GitHub/cobol-check/vs-code-extension/Cobol-check && " const testPath = appendPath(externalVsCodeInstallationDir, "Cobol-check"); - var tmpStr = "cd " + testPath + " && " + // fix for MacOS + const tmpStr = "cd " + testPath + " && " //Run Cobol Check jar with arguments var child = exec(tmpStr + executeJarCommand + ' ' + commandLineArgs, (error : string, stdout : string, stderr : string) => { if(error !== null){ @@ -174,7 +174,8 @@ export function getFileName(path : string, includeExtension : boolean) : string{ } export function getCutName(path : string) : string{ - const name = path.split("/").pop() + + const name = path.split(getFileSeperatorForOS(currentPlatform)).pop() if(!name.endsWith(".cut")) return null return name; } @@ -224,7 +225,7 @@ export function appendPath(path1 : string, path2 : string){ return adjustPath(path1) + getFileSeperatorForOS(currentPlatform) + adjustPath(path2); } -function getOS() { +export function getOS() { var platform = process.platform; var macosPlatformTag = 'darwin' var windowsPlatformTag = 'win32' @@ -246,7 +247,7 @@ export async function getIsInsideTestSuiteDirectory1(input: string): Promise(); let generationCounter = 0; @@ -42,10 +41,8 @@ export class TestFile { private isDirectory:boolean; private isInsideTestSuiteDirectory:boolean; private isTestSuiteDirectory:boolean; - // private isbeforeTestSuiteDirectory:boolean; constructor() { - // this.setDirectoryDetails(path) } @@ -98,7 +95,6 @@ export class TestFile { onHeading: (range, name, depth) => { ascend(depth); - const parent = ancestors[ancestors.length - 1]; const id = `${item.uri}/${name}`; const thead = controller.createTestItem(id, name, item.uri); @@ -130,10 +126,12 @@ export class TestFile { } public getIsInsideTestSuiteDirectory(){ + // if it is inside test suite directory e.g. src/test is inside src/test/cobol return this.isInsideTestSuiteDirectory; } public getIsTestSuiteDirectory(){ + // If it is test suite directory return this.isTestSuiteDirectory; } @@ -142,8 +140,10 @@ export class TestFile { } - async run(item: vscode.TestItem, options: vscode.TestRun): Promise { + + const start = Date.now(); + let applicationSourceDir = await getConfigurationValueFor(configPath, 'application.source.directory'); let argument : string; const data = testData.get(item); @@ -161,7 +161,7 @@ export class TestFile { argument = getCobolCheckRunArgumentsBasedOnCurrentDirectory(externalVsCodeInstallationDir, configPath, applicationSourceDir, item.uri.fsPath ); } } - const start = Date.now(); + let output = await runCobolCheck(cobolCheckJarPath, argument) const result = await handleCobolCheckOut(output,externalVsCodeInstallationDir,configPath); const duration = Date.now() - start; @@ -169,7 +169,7 @@ export class TestFile { if(result) options.passed(item, duration); else{ // TODO: identify message - const message = vscode.TestMessage.diff(`Expected ${item.label}`, String("1"), String("0")); + const message = vscode.TestMessage.diff(`Expected ${item.label}`, String(""), String("0")); options.failed(item, message, duration) } } @@ -186,13 +186,13 @@ export class TestHeading { constructor( public generation: number, private content: string - ) { - } + ) {} + async run(item: vscode.TestItem, options: vscode.TestRun): Promise { const start = Date.now(); await new Promise(resolve => setTimeout(resolve, 1000 + Math.random() * 1000)); const duration = Date.now() - start; - // const message = vscode.TestMessage.diff(`Expected ${item.label}`, String("123"), String("This should not run")); + // const message = vscode.TestMessage.diff(`Expected ${item.label}`, String(""), String("This should not run")); // options.failed(item, message ,duration); options.passed(item, duration); } @@ -212,7 +212,7 @@ export class TestCase { const start = Date.now(); await new Promise(resolve => setTimeout(resolve, 1000 + Math.random() * 1000)); const duration = Date.now() - start; - // const message = vscode.TestMessage.diff(`Expected ${item.label}`, String("123"), String("This should not run")); + // const message = vscode.TestMessage.diff(`Expected ${item.label}`, String(""), String("This should not run")); // options.failed(item, message ,duration); options.passed(item, duration); } From c1d83dd1113ee237255cd58332efaa86a4b83575 Mon Sep 17 00:00:00 2001 From: issacto Date: Wed, 30 Aug 2023 12:41:28 +0100 Subject: [PATCH 141/180] delete redundant test files Signed-off-by: issacto --- .../ALPHA/AlphaExpectationsTest.cut | 66 ------------------- .../testFixture/alpha/alpha copy/alpha.cut | 61 ----------------- 2 files changed, 127 deletions(-) delete mode 100644 src/test/cobol/ALPHA-COPY/ALPHA/AlphaExpectationsTest.cut delete mode 100644 vs-code-extension/client/testFixture/alpha/alpha copy/alpha.cut diff --git a/src/test/cobol/ALPHA-COPY/ALPHA/AlphaExpectationsTest.cut b/src/test/cobol/ALPHA-COPY/ALPHA/AlphaExpectationsTest.cut deleted file mode 100644 index ea303e35..00000000 --- a/src/test/cobol/ALPHA-COPY/ALPHA/AlphaExpectationsTest.cut +++ /dev/null @@ -1,66 +0,0 @@ - TestSuite "Tests of alphanumeric expectations" - - TestCase "Equality with an alphanumeric literal using TO BE" - move "value1" to ws-field-1 - Expect ws-field-1 to be "value1" - - TestCase "Equality with an alphanumeric literal using TO EQUAL" - move "value2" to ws-field-1 - Expect ws-field-1 to equal "value2" - - TestCase "Equality with an alphanumeric literal using '='" - move "value3" to ws-field-1 - Expect ws-field-1 = "value3" - - TestCase "Equality with an alphanumeric literal and reference modification" - move "Hello, World!" to ws-field-2 - Expect ws-field-2(8:5) to be "World" - - TestCase "Non-equality with an alphanumeric literal using TO BE" - move "value4" to ws-field-1 - Expect ws-field-1 not to be "value1" - - TestCase "Non-equality with an alphanumeric literal using TO EQUAL" - move "value5" to ws-field-1 - Expect ws-field-1 not to equal "value1" - - TestCase "Non-equality with an alphanumeric literal using '!='" - move "value6" to ws-field-1 - Expect ws-field-1 != "value1" - - TestCase "Non-equality with an alphanumeric literal and reference modification" - move "Hello, World!" to ws-field-2 - Expect ws-field-2(8:6) not to be "World" - - TestCase "Greater-than sign with an alphanumeric literal" - move "Beta" to ws-field-1 - move "Alpha" to ws-field-2 - Expect ws-field-1 > "Alpha" - - TestCase "Less-than sign with an alphanumeric literal" - move "Beta" to ws-field-1 - move "Alpha" to ws-field-2 - Expect ws-field-2 < "Beta" - - TestCase "Not greater-than sign with an alphanumeric literal" - move "Beta" to ws-field-1 - move "Alpha" to ws-field-2 - Expect ws-field-2 not > "Beta" - - TestCase "Not less-than sign with an alphanumeric literal" - move "Beta" to ws-field-1 - move "Alpha" to ws-field-2 - Expect ws-field-1 not < "Alpha" - - TestCase "Display numeric" - move 6 to ws-display-numeric - expect ws-display-numeric to be 6 - - TestCase "Variable must be SPACE" - move space to ws-field-1 - expect ws-field-1 to be space - - TestCase "Variable must be SPACES" - move spaces to ws-field-1 - expect ws-field-1 to be spaces - \ No newline at end of file diff --git a/vs-code-extension/client/testFixture/alpha/alpha copy/alpha.cut b/vs-code-extension/client/testFixture/alpha/alpha copy/alpha.cut deleted file mode 100644 index 8074bb50..00000000 --- a/vs-code-extension/client/testFixture/alpha/alpha copy/alpha.cut +++ /dev/null @@ -1,61 +0,0 @@ - TestSuite "Tests of alphanumeric expectations" - - TestCase "Equality with an alphanumeric literal using TO BE" - move "value1" to ws-field-1 - Expect ws-field-1 to be "value1" - - TestCase "Equality with an alphanumeric literal using TO EQUAL" - move "value2" to ws-field-1 - Expect ws-field-1 to equal "value2" - - TestCase "Equality with an alphanumeric literal using '='" - move "value3" to ws-field-1 - Expect ws-field-1 = "value3" - - TestCase "Equality with an alphanumeric literal and reference modification" - move "Hello, World!" to ws-field-2 - Expect ws-field-2(8:5) to be "World" - - TestCase "Non-equality with an alphanumeric literal using TO BE" - move "value4" to ws-field-1 - Expect ws-field-1 not to be "value1" - - TestCase "Non-equality with an alphanumeric literal using TO EQUAL" - move "value5" to ws-field-1 - Expect ws-field-1 not to equal "value1" - - TestCase "Non-equality with an alphanumeric literal using '!='" - move "value6" to ws-field-1 - Expect ws-field-1 != "value1" - - TestCase "Non-equality with an alphanumeric literal and reference modification" - move "Hello, World!" to ws-field-2 - Expect ws-field-2(8:6) not to be "World" - - TestCase "Greater-than sign with an alphanumeric literal" - move "Beta" to ws-field-1 - move "Alpha" to ws-field-2 - Expect ws-field-1 > ws-field-2 - - TestCase "Less-than sign with an alphanumeric literal" - move "Beta" to ws-field-1 - move "Alpha" to ws-field-2 - Expect ws-field-2 < ws-field-1 - - TestCase "Not greater-than sign with an alphanumeric literal" - move "Beta" to ws-field-1 - move "Alpha" to ws-field-2 - Expect ws-field-2 not > ws-field-1 - - TestCase "Not less-than sign with an alphanumeric literal" - move "Beta" to ws-field-1 - move "Alpha" to ws-field-2 - Expect ws-field-1 not < ws-field-2 - - TestCase "Display numeric" - move 6 to ws-display-numeric - expect ws-display-numeric to be 6 - - - - From 5c1f2cad8c35392184c59353c5fb9dd59a574129 Mon Sep 17 00:00:00 2001 From: issacto Date: Thu, 31 Aug 2023 14:40:33 +0100 Subject: [PATCH 142/180] directory on windows fix -1 --- vs-code-extension/client/src/extension.ts | 12 ++++++++---- .../client/src/services/CobolCheckLauncher.ts | 3 ++- 2 files changed, 10 insertions(+), 5 deletions(-) diff --git a/vs-code-extension/client/src/extension.ts b/vs-code-extension/client/src/extension.ts index 18eda8f3..1fea14e3 100644 --- a/vs-code-extension/client/src/extension.ts +++ b/vs-code-extension/client/src/extension.ts @@ -241,7 +241,8 @@ async function createDirectoryItems( controller:vscode.TestController, uri: vsco // Create TestFile for each directory var isInsideTestSuite: boolean = await getIsInsideTestSuiteDirectory1(uri.fsPath) - const dirArr = vscode.workspace.asRelativePath(uri.fsPath).split(getFileSeperatorForOS(currentPlatform)) + // const dirArr = vscode.workspace.asRelativePath(uri.fsPath).split(getFileSeperatorForOS(currentPlatform)) + const dirArr = vscode.workspace.asRelativePath(uri.fsPath).split("/") const rootDir = uri.fsPath.replace(vscode.workspace.asRelativePath(uri.fsPath),"") const rootUri = rootDir+dirArr[0] @@ -271,7 +272,8 @@ async function createDirectoryItems( controller:vscode.TestController, uri: vsco var tmpData = null for(var i =1;i Date: Mon, 4 Sep 2023 09:07:17 +0200 Subject: [PATCH 143/180] Further tests added to PR MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit param number \ param type | normal | qualified | test name none covered* - Covered* - one covered* - X verify_can_attach_to_call_mock_with_one_qualified_argument X X verify_call_mock_with_qualified_arguments_mixed two covered* - X verify_can_attach_to_call_mock_with_qualified_arguments X X CALL_MOCK_param_is_qualified_two_but_one three covered* - X CALL_MOCK_param_is_qualified_three X X CALL_MOCK_param_three_is_qualified_three_is_not many (5/6) covered* - X CALL_MOCK_param_six_is_qualified X X CALL_MOCK_param_five_is_qualified_six_is_not * (must be) covered by tests already (I have´nt checked) Signed-off-by: Thomas N. Kramer --- .../cobolcheck/MockingTest.java | 187 ++++++++++++++++++ .../TestSuiteParserParsingTest.java | 29 +++ 2 files changed, 216 insertions(+) diff --git a/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java b/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java index 5f2a9fb8..996b401a 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java @@ -949,8 +949,195 @@ public void if_no_mocks_the_initialize_mock_count_paragraph_is_empty() throws IO assertEquals(expected, actual); } + @Test + public void CALL_MOCK_param_is_qualified_single() throws IOException { + String str1 = " TESTSUITE \"Name of test suite\""; + String str2 = " TESTCASE \"Name of test case\""; + String str3 = " MOCK CALL 'prog1' USING VALUE-1 IN LS-STORAGE"; + String str4 = " MOVE \"something\" TO this"; + String str5 = " MOVE \"something else\" TO other"; + String str6 = " END-MOCK"; + + List expected = new ArrayList<>(); + expected.add(" EVALUATE UT-TEST-SUITE-NAME"); + expected.add(" ALSO UT-TEST-CASE-NAME"); + expected.add(" WHEN \"Name of test suite\""); + expected.add(" ALSO \"Name of test case\""); + expected.add(" PERFORM UT-1-1-1-MOCK"); + expected.add(" END-EVALUATE"); + + Mockito.when(mockedReader.readLine()).thenReturn(str1, str2, str3, str4, str5, str6, null); + + testSuiteParserController.parseTestSuites(numericFields); + testSuiteParserController.getProcedureDivisionTestCode(); + + List actual = testSuiteParserController.generateMockPerformCalls("'prog1'", + Constants.CALL_TOKEN, Arrays.asList("REFERENCE VALUE-1 IN LS-STORAGE")); + + assertEquals(expected, actual); + } + + @Test + public void CALL_MOCK_param_is_qualified_two_but_one() throws IOException { + String str1 = " TESTSUITE \"Name of test suite\""; + String str2 = " TESTCASE \"Name of test case\""; + String str3 = " MOCK CALL 'PGM1' USING VALUE-1 IN LS-STORAGE,"; + String str4 = " ONE-REGULAR"; + String str5 = " MOVE \"something\" TO this"; + String str6 = " MOVE \"something else\" TO other"; + String str7 = " END-MOCK"; + + List expected = new ArrayList<>(); + expected.add(" EVALUATE UT-TEST-SUITE-NAME"); + expected.add(" ALSO UT-TEST-CASE-NAME"); + expected.add(" WHEN \"Name of test suite\""); + expected.add(" ALSO \"Name of test case\""); + expected.add(" PERFORM UT-1-1-1-MOCK"); + expected.add(" END-EVALUATE"); + + Mockito.when(mockedReader.readLine()).thenReturn(str1, str2, str3, str4, str5, str6, str7, null); + + testSuiteParserController.parseTestSuites(numericFields); + testSuiteParserController.getProcedureDivisionTestCode(); + + List actual = testSuiteParserController.generateMockPerformCalls("'PGM1'", + Constants.CALL_TOKEN, Arrays.asList("REFERENCE VALUE-1 IN LS-STORAGE","REFERENCE ONE-REGULAR")); + + assertEquals(expected, actual); + } + + @Test + public void CALL_MOCK_param_is_qualified_three() throws IOException { + String str1 = " TESTSUITE \"Name of test suite\""; + String str2 = " TESTCASE \"Name of test case\""; + String str3 = " MOCK CALL 'PROGRAM' USING VALUE-1 IN LS-STORAGE,"; + String str4 = " VALUE-TWO IN LS-STORAGE,"; + String str5 = " VALUE-THREE IN WS-STORAGE"; + String str6 = " MOVE \"something\" TO this"; + String str7 = " MOVE \"something else\" TO other"; + String str8 = " END-MOCK"; + + List expected = new ArrayList<>(); + expected.add(" EVALUATE UT-TEST-SUITE-NAME"); + expected.add(" ALSO UT-TEST-CASE-NAME"); + expected.add(" WHEN \"Name of test suite\""); + expected.add(" ALSO \"Name of test case\""); + expected.add(" PERFORM UT-1-1-1-MOCK"); + expected.add(" END-EVALUATE"); + + Mockito.when(mockedReader.readLine()).thenReturn(str1, str2, str3, str4, str5, str6, str7,str8, null); + testSuiteParserController.parseTestSuites(numericFields); + testSuiteParserController.getProcedureDivisionTestCode(); + + List actual = testSuiteParserController.generateMockPerformCalls("'PROGRAM'", + Constants.CALL_TOKEN, Arrays.asList("REFERENCE VALUE-1 IN LS-STORAGE","REFERENCE VALUE-TWO IN LS-STORAGE","REFERENCE VALUE-THREE IN WS-STORAGE")); + + assertEquals(expected, actual); + } + + @Test + public void CALL_MOCK_param_three_is_qualified_three_is_not() throws IOException { + String str1 = " TESTSUITE \"Name of test suite\""; + String str2 = " TESTCASE \"Name of test case\""; + String str3 = " MOCK CALL 'PROGRAM' USING VALUE-1 IN LS-STORAGE,"; + String str4 = " VALUE-TWO IN LS-STORAGE,"; + String str5 = " VALUE-TWO-STORAGE,"; + String str6 = " VALUE-THREE IN WS-STORAGE"; + String str7 = " VALUE-THREE-STORAGE"; + String str8 = " WS-VALUE-THREE"; + String str9 = " MOVE \"something\" TO this"; + String str10 = " MOVE \"something else\" TO other"; + String str11 = " END-MOCK"; + List expected = new ArrayList<>(); + expected.add(" EVALUATE UT-TEST-SUITE-NAME"); + expected.add(" ALSO UT-TEST-CASE-NAME"); + expected.add(" WHEN \"Name of test suite\""); + expected.add(" ALSO \"Name of test case\""); + expected.add(" PERFORM UT-1-1-1-MOCK"); + expected.add(" END-EVALUATE"); + + Mockito.when(mockedReader.readLine()).thenReturn(str1, str2, str3, str4, str5, str6, str7,str8,str9,str10,str11, null); + + testSuiteParserController.parseTestSuites(numericFields); + testSuiteParserController.getProcedureDivisionTestCode(); + + List actual = testSuiteParserController.generateMockPerformCalls("'PROGRAM'", + Constants.CALL_TOKEN, Arrays.asList("REFERENCE VALUE-1 IN LS-STORAGE","REFERENCE VALUE-TWO IN LS-STORAGE","REFERENCE VALUE-TWO-STORAGE", + "REFERENCE VALUE-THREE IN WS-STORAGE","REFERENCE VALUE-THREE-STORAGE","REFERENCE WS-VALUE-THREE")); + assertEquals(expected, actual); + } + + @Test + public void CALL_MOCK_param_six_is_qualified() throws IOException { + String str1 = " TESTSUITE \"Name of test suite\""; + String str2 = " TESTCASE \"Name of test case\""; + String str3 = " MOCK CALL 'AMGRAM' USING VALUE-1 IN L-STORAGE,"; + String str4 = " VALUE-2 IN L-STORAGE,"; + String str5 = " VALUE-3 IN L-STORAGE,"; + String str6 = " VALUE-4 IN L-STORAGE,"; + String str7 = " VALUE-5 IN L-STORAGE,"; + String str8 = " VALUE-6 IN L-STORAGE,"; + String str9 = " MOVE \"something\" TO this"; + String str10 = " MOVE \"something else\" TO other"; + String str11 = " END-MOCK"; + + List expected = new ArrayList<>(); + expected.add(" EVALUATE UT-TEST-SUITE-NAME"); + expected.add(" ALSO UT-TEST-CASE-NAME"); + expected.add(" WHEN \"Name of test suite\""); + expected.add(" ALSO \"Name of test case\""); + expected.add(" PERFORM UT-1-1-1-MOCK"); + expected.add(" END-EVALUATE"); + + Mockito.when(mockedReader.readLine()).thenReturn(str1, str2, str3, str4, str5, str6, str7,str8,str9,str10,str11, null); + + testSuiteParserController.parseTestSuites(numericFields); + testSuiteParserController.getProcedureDivisionTestCode(); + + List actual = testSuiteParserController.generateMockPerformCalls("'AMGRAM'", + Constants.CALL_TOKEN, Arrays.asList("REFERENCE VALUE-1 IN L-STORAGE","REFERENCE VALUE-2 IN L-STORAGE","REFERENCE VALUE-3 IN L-STORAGE","REFERENCE VALUE-4 IN L-STORAGE","REFERENCE VALUE-5 IN L-STORAGE", + "REFERENCE VALUE-6 IN L-STORAGE")); + assertEquals(expected, actual); + } + @Test + public void CALL_MOCK_param_five_is_qualified_six_is_not() throws IOException { + String str1 = " TESTSUITE \"Name of test suite\""; + String str2 = " TESTCASE \"Name of test case\""; + String str3 = " MOCK CALL 'PROGRAM' USING VALUE-1 IN L-STORAGE,"; + String str4 = " VALUE-2 IN L-STORAGE,"; + String str5 = " VALUE-3 IN L-STORAGE,"; + String str6 = " VALUE-4 IN L-STORAGE,"; + String str7 = " VALUE-5 IN L-STORAGE,"; + String str8 = " VALUE-11,"; + String str9 = " VALUE-12,"; + String str10 = " VALUE-13,"; + String str11 = " VALUE-14,"; + String str12 = " VALUE-15,"; + String str13 = " VALUE-16"; + String str14 = " MOVE \"something\" TO this"; + String str15 = " MOVE \"something else\" TO other"; + String str16 = " END-MOCK"; + + List expected = new ArrayList<>(); + expected.add(" EVALUATE UT-TEST-SUITE-NAME"); + expected.add(" ALSO UT-TEST-CASE-NAME"); + expected.add(" WHEN \"Name of test suite\""); + expected.add(" ALSO \"Name of test case\""); + expected.add(" PERFORM UT-1-1-1-MOCK"); + expected.add(" END-EVALUATE"); + + Mockito.when(mockedReader.readLine()).thenReturn(str1, str2, str3, str4, str5, str6, str7,str8,str9,str10,str11,str12,str13,str14,str15,str16, null); + + testSuiteParserController.parseTestSuites(numericFields); + testSuiteParserController.getProcedureDivisionTestCode(); + + List actual = testSuiteParserController.generateMockPerformCalls("'PROGRAM'", + Constants.CALL_TOKEN, Arrays.asList("REFERENCE VALUE-1 IN L-STORAGE","REFERENCE VALUE-2 IN L-STORAGE","REFERENCE VALUE-3 IN L-STORAGE","REFERENCE VALUE-4 IN L-STORAGE","REFERENCE VALUE-5 IN L-STORAGE", + "REFERENCE VALUE-11","REFERENCE VALUE-12","REFERENCE VALUE-13","REFERENCE VALUE-14","REFERENCE VALUE-15","REFERENCE VALUE-16")); + assertEquals(expected, actual); + } diff --git a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteParserParsingTest.java b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteParserParsingTest.java index 7ab6d82c..af0d34e3 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteParserParsingTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteParserParsingTest.java @@ -511,6 +511,35 @@ public void verify_can_attach_to_call_mock_with_arguments() { } + @Test + public void verify_can_attach_to_call_mock_with_one_qualified_argument() { + testSuite.append(" TESTSUITE \"call_mock_with_arguments\""); + testSuite.append(" TESTCASE \"qualified_arguments\""); + testSuite.append(" MOCK CALL 'PROG1' USING this in this-place"); + testSuite.append(" MOVE \"something\" TO this"); + testSuite.append(" MOVE \"something else\" TO other"); + testSuite.append(" END-MOCK"); + testSuite.append(" PERFORM 000-START"); + testSuite.append(" VERIFY CALL 'PROG1' USING"); + testSuite.append(" this in this-place"); + testSuite.append(" HAPPENED ONCE"); + + List expectedResult = new ArrayList<>(); + expectedResult.add(" MOVE 1 TO UT-1-1-1-MOCK-EXPECTED"); + expectedResult.add(" MOVE UT-1-1-1-MOCK-COUNT TO UT-ACTUAL-ACCESSES"); + expectedResult.add(" MOVE UT-1-1-1-MOCK-EXPECTED TO UT-EXPECTED-ACCESSES"); + expectedResult.add(" MOVE UT-1-1-1-MOCK-NAME TO UT-MOCK-OPERATION"); + expectedResult.add(" SET UT-VERIFY-EXACT TO TRUE"); + expectedResult.add(" ADD 1 TO UT-TEST-CASE-COUNT"); + expectedResult.add(" PERFORM UT-ASSERT-ACCESSES"); + testSuiteParser.getParsedTestSuiteLines( + new BufferedReader(new StringReader(testSuite.toString())), + numericFields); + List actualResult = new ArrayList<>(); + testSuiteParser.handleEndOfVerifyStatement(actualResult,Constants.EMPTY_STRING,Constants.EMPTY_STRING); + assertEquals(expectedResult, actualResult); + } + @Test public void verify_can_attach_to_call_mock_with_qualified_arguments() { testSuite.append(" TESTSUITE \"call_mock_with_arguments\""); From e95d2362719886dbca3761fe54cdb70b5afa3720 Mon Sep 17 00:00:00 2001 From: "Thomas N. Kramer" Date: Mon, 4 Sep 2023 09:20:14 +0200 Subject: [PATCH 144/180] fix tests where the expected result is an exception tests have been reworked to use the assertThrows approach. Signed-off-by: Thomas N. Kramer --- .../TestSuiteParserParsingTest.java | 46 +++++++------------ 1 file changed, 16 insertions(+), 30 deletions(-) diff --git a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteParserParsingTest.java b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteParserParsingTest.java index af0d34e3..054b6225 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteParserParsingTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteParserParsingTest.java @@ -1,5 +1,6 @@ package org.openmainframeproject.cobolcheck; +import org.openmainframeproject.cobolcheck.exceptions.PossibleInternalLogicErrorException; import org.openmainframeproject.cobolcheck.exceptions.TestSuiteAlreadyExistsException; import org.openmainframeproject.cobolcheck.exceptions.TestCaseAlreadyExistsException; import org.openmainframeproject.cobolcheck.exceptions.VerifyReferencesNonexistentMockException; @@ -590,18 +591,13 @@ public void verify_missing_call_mock_with_qualified_arguments() { expectedResult.add(" SET UT-VERIFY-EXACT TO TRUE"); expectedResult.add(" ADD 1 TO UT-TEST-CASE-COUNT"); expectedResult.add(" PERFORM UT-ASSERT-ACCESSES"); - try { - testSuiteParser.getParsedTestSuiteLines( - new BufferedReader(new StringReader(testSuite.toString())),numericFields); + + Throwable ex = assertThrows(VerifyReferencesNonexistentMockException.class, () -> { + testSuiteParser.getParsedTestSuiteLines(new BufferedReader(new StringReader(testSuite.toString())),numericFields); List actualResult = new ArrayList<>(); + testSuiteParser.handleEndOfVerifyStatement(actualResult, Constants.EMPTY_STRING, Constants.EMPTY_STRING); }); - testSuiteParser.handleEndOfVerifyStatement(actualResult, Constants.EMPTY_STRING, Constants.EMPTY_STRING); - // the following assert must not be performed! - fail("An exception should have been thrown :("); - } catch (VerifyReferencesNonexistentMockException mockException) { - assertNotNull(mockException); - assertTrue(mockException.getMessage().indexOf("nonexistent mock")>0); - } + assertTrue(ex.getMessage().indexOf("nonexistent mock")>-1); } @Test @@ -625,18 +621,13 @@ public void verify_missing_call_mock_with_qualified_arguments_2() { expectedResult.add(" SET UT-VERIFY-EXACT TO TRUE"); expectedResult.add(" ADD 1 TO UT-TEST-CASE-COUNT"); expectedResult.add(" PERFORM UT-ASSERT-ACCESSES"); - try { - testSuiteParser.getParsedTestSuiteLines( - new BufferedReader(new StringReader(testSuite.toString())),numericFields); + + Throwable ex = assertThrows(VerifyReferencesNonexistentMockException.class, () -> { + testSuiteParser.getParsedTestSuiteLines(new BufferedReader(new StringReader(testSuite.toString())),numericFields); List actualResult = new ArrayList<>(); + testSuiteParser.handleEndOfVerifyStatement(actualResult, Constants.EMPTY_STRING, Constants.EMPTY_STRING); }); - testSuiteParser.handleEndOfVerifyStatement(actualResult, Constants.EMPTY_STRING, Constants.EMPTY_STRING); - // the following assert must not be performed! - fail("An exception should have been thrown :("); - } catch (VerifyReferencesNonexistentMockException mockException) { - assertNotNull(mockException); - assertTrue(mockException.getMessage().indexOf("nonexistent mock")>0); - } + assertTrue(ex.getMessage().indexOf("nonexistent mock")>-1); } @@ -661,18 +652,13 @@ public void verify_call_mock_with_qualified_arguments_mixed() { expectedResult.add(" SET UT-VERIFY-EXACT TO TRUE"); expectedResult.add(" ADD 1 TO UT-TEST-CASE-COUNT"); expectedResult.add(" PERFORM UT-ASSERT-ACCESSES"); - try { - testSuiteParser.getParsedTestSuiteLines( - new BufferedReader(new StringReader(testSuite.toString())),numericFields); + + Throwable ex = assertThrows(VerifyReferencesNonexistentMockException.class, () -> { + testSuiteParser.getParsedTestSuiteLines(new BufferedReader(new StringReader(testSuite.toString())),numericFields); List actualResult = new ArrayList<>(); + testSuiteParser.handleEndOfVerifyStatement(actualResult, Constants.EMPTY_STRING, Constants.EMPTY_STRING); }); - testSuiteParser.handleEndOfVerifyStatement(actualResult, Constants.EMPTY_STRING, Constants.EMPTY_STRING); - // the following assert must not be performed! - fail("An exception should have been thrown :("); - } catch (VerifyReferencesNonexistentMockException mockException) { - assertNotNull(mockException); - assertTrue(mockException.getMessage().indexOf("nonexistent mock")>0); - } + assertTrue(ex.getMessage().indexOf("nonexistent mock")>-1); } @Test From dc9f5af4e0dc98ecef261c2e031f0028905fcf7f Mon Sep 17 00:00:00 2001 From: "Thomas N. Kramer" Date: Mon, 4 Sep 2023 09:39:26 +0200 Subject: [PATCH 145/180] file removed from project and added to gitignore The file is generated during a test run, and it contains information about the user Signed-off-by: Thomas N. Kramer --- .gitignore | 2 +- testsuites/concatenatedTestsuites | 25 ------------------------- 2 files changed, 1 insertion(+), 26 deletions(-) delete mode 100644 testsuites/concatenatedTestsuites diff --git a/.gitignore b/.gitignore index 8676cb8a..d5246a2b 100644 --- a/.gitignore +++ b/.gitignore @@ -14,7 +14,7 @@ LAUNCHTESTT CC##* # project specific - +testsuites/concatenatedTestsuites *.hprof envvars target/ diff --git a/testsuites/concatenatedTestsuites b/testsuites/concatenatedTestsuites deleted file mode 100644 index 5e24907e..00000000 --- a/testsuites/concatenatedTestsuites +++ /dev/null @@ -1,25 +0,0 @@ - *From file: C:\Users\bdutnp\github\cobol-check\src\test\cobol\GREETING\GreetingByType.cut - TESTSUITE - "Greeting returns the appropriate message based on message type" - - TestCase "When message type is greeting it returns 'Hello, World!'" - SET MESSAGE-IS-GREETING TO TRUE - PERFORM 2000-SPEAK - EXPECT WS-GREETING TO BE "Hello, World!" - - TESTCASE "try numerical compare" - ADD 1 TO WS-COUNT - EXPECT WS-COUNT TO BE 1 - - TESTCASE "try 88 level compare" - EXPECT MESSAGE-IS-GREETING TO BE FALSE - - TESTCASE "When message type is farewell it returns See you later, alligator!" - SET MESSAGE-IS-FAREWELL TO TRUE - PERFORM 2000-SPEAK - Expect WS-FAREWELL To Be "See you later, alligator!" - - TESTCASE "Message type greeting is not true" - SET MESSAGE-IS-GREETING TO TRUE - Expect MESSAGE-IS-GREETING NOT TO BE TRUE - From 3ebb300254e10fdcb76b0f5ed57ae8f1e511190d Mon Sep 17 00:00:00 2001 From: "Thomas N. Kramer" Date: Mon, 4 Sep 2023 13:09:38 +0200 Subject: [PATCH 146/180] format function Signed-off-by: Thomas N. Kramer --- .../services/cobolLogic/Interpreter.java | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java b/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java index 8a7b3001..32ebdc2f 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java @@ -581,17 +581,20 @@ private static Integer determineCobolLevelNumber(String levelNumberString){ private static String[] extractStatementWords(List currentStatement) { String statementString = ""; boolean[] isContinuationLine = new boolean[currentStatement.size()]; - Arrays.fill(isContinuationLine, false);for (int i = 1; i < currentStatement.size(); ++i) { - if(currentStatement.get(i).getTrimmedString().startsWith("-")){ - isContinuationLine[i] = true; + Arrays.fill(isContinuationLine, false); + for (int i = 1; i < currentStatement.size(); ++i) { + if (currentStatement.get(i).getTrimmedString().startsWith("-")) { + isContinuationLine[i] = true; + } } - } - for(int i = 0; i < currentStatement.size(); ++i) { + + for(int i = 0; i < currentStatement.size(); ++i) { statementString += currentStatement.get(i).getTrimmedString(); - if(!isContinuationLine[i]){ - statementString += " "; - } + if(!isContinuationLine[i]){ + statementString += " "; + } } + statementString = statementString.trim().replace(Constants.PERIOD, ""); String[] statementWords = statementString.split("\\s+"); return statementWords; From c582a77f450ce1c031694c5b337636fc407cebcb Mon Sep 17 00:00:00 2001 From: "Thomas N. Kramer" Date: Tue, 5 Sep 2023 08:33:30 +0200 Subject: [PATCH 147/180] Test refactor to avoid warnings Signed-off-by: Thomas N. Kramer --- .../cobolcheck/InterpreterControllerTest.java | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/test/java/org/openmainframeproject/cobolcheck/InterpreterControllerTest.java b/src/test/java/org/openmainframeproject/cobolcheck/InterpreterControllerTest.java index 8574c963..20dd88ce 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/InterpreterControllerTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/InterpreterControllerTest.java @@ -21,6 +21,7 @@ public class InterpreterControllerTest { InterpreterController interpreterController; BufferedReader mockedReader; + String[] nullArray = null; @BeforeAll public static void setup(){ @@ -119,7 +120,7 @@ public void it_sets_CBL_rules_on_first_line() throws IOException { expected.add(" CBL OPT(0), RULES(LAXPERF)"); expected.add(" IDENTIFICATION DIVISION."); - Mockito.when(mockedReader.readLine()).thenReturn(str1, null); + Mockito.when(mockedReader.readLine()).thenReturn(str1,nullArray); String line = ""; boolean assertHappened = false; @@ -197,7 +198,7 @@ public void it_appends_CBL_rules_on_first_line_if_it_is_already_there() throws I String expected = " CBL OPT(1), OPT(0), RULES(LAXPERF)"; - Mockito.when(mockedReader.readLine()).thenReturn(str1, null); + Mockito.when(mockedReader.readLine()).thenReturn(str1,nullArray); String line = ""; boolean assertHappened = false; @@ -221,7 +222,7 @@ public void it_does_not_add_CBL_rules_on_first_line_if_null_is_given() throws IO String expected = " IDENTIFICATION DIVISION."; - Mockito.when(mockedReader.readLine()).thenReturn(str1, null); + Mockito.when(mockedReader.readLine()).thenReturn(str1,nullArray); String line = ""; boolean assertHappened = false; From e6690224375cbb240a7bf0306b57d139a7f444f3 Mon Sep 17 00:00:00 2001 From: "Thomas N. Kramer" Date: Tue, 5 Sep 2023 08:36:34 +0200 Subject: [PATCH 148/180] Test refactor to avoid warnings Signed-off-by: Thomas N. Kramer --- .../cobolcheck/ExpanderTest.java | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/src/test/java/org/openmainframeproject/cobolcheck/ExpanderTest.java b/src/test/java/org/openmainframeproject/cobolcheck/ExpanderTest.java index 979223f3..fc650e1b 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/ExpanderTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/ExpanderTest.java @@ -37,6 +37,8 @@ public class ExpanderTest { private List boilerPLateWS; private List boilerPLateDP; + private String[] nullArray = null; + List boilerPlateTags = Arrays.asList("* CCHECKWS.CPY", "* CCHECKPARAGRAPHSPD.CPY", "* CCHECKRESULTPD.CPY"); @BeforeAll @@ -103,7 +105,7 @@ public void it_inserts_code_correctly_when_call_has_exception_handling_with_end_ String t1 = " TestSuite \"test\""; Mockito.when(mockedInterpreterReader.readLine()).thenReturn(s1, s2, s3, s4, s5, s6, null); - Mockito.when(mockedParserReader.readLine()).thenReturn(t1, null); + Mockito.when(mockedParserReader.readLine()).thenReturn(t1,nullArray); generator = new Generator(interpreterController, writerController, testSuiteParserController); @@ -125,7 +127,7 @@ public void it_inserts_code_correctly_when_call_has_exception_handling_with_peri String t1 = " TestSuite \"test\""; Mockito.when(mockedInterpreterReader.readLine()).thenReturn(s1, s2, s3, s4, s5, s6, null); - Mockito.when(mockedParserReader.readLine()).thenReturn(t1, null); + Mockito.when(mockedParserReader.readLine()).thenReturn(t1,nullArray); generator = new Generator(interpreterController, writerController, testSuiteParserController); @@ -148,7 +150,7 @@ public void it_inserts_code_correctly_when_call_has_different_exception_handling String t1 = " TestSuite \"test\""; Mockito.when(mockedInterpreterReader.readLine()).thenReturn(s1, s2, s3, s4, s5, s6, null); - Mockito.when(mockedParserReader.readLine()).thenReturn(t1, null); + Mockito.when(mockedParserReader.readLine()).thenReturn(t1,nullArray); generator = new Generator(interpreterController, writerController, testSuiteParserController); @@ -175,7 +177,7 @@ public void it_inserts_code_correctly_when_call_has_a_new_call_as_exception_hand String t1 = " TestSuite \"test\""; Mockito.when(mockedInterpreterReader.readLine()).thenReturn(s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, null); - Mockito.when(mockedParserReader.readLine()).thenReturn(t1, null); + Mockito.when(mockedParserReader.readLine()).thenReturn(t1,nullArray); generator = new Generator(interpreterController, writerController, testSuiteParserController); @@ -198,7 +200,7 @@ public void it_inserts_code_correctly_when_each_call_in_series_has_an_exception_ String t1 = " TestSuite \"test\""; Mockito.when(mockedInterpreterReader.readLine()).thenReturn(s1, s2, s3, s4, s5, s6, null); - Mockito.when(mockedParserReader.readLine()).thenReturn(t1, null); + Mockito.when(mockedParserReader.readLine()).thenReturn(t1,nullArray); generator = new Generator(interpreterController, writerController, testSuiteParserController); From 8bad318229dd4ba31e1708b307f4aa0cc72a6ce9 Mon Sep 17 00:00:00 2001 From: "Thomas N. Kramer" Date: Tue, 5 Sep 2023 08:41:19 +0200 Subject: [PATCH 149/180] Introduction of class uses the new class to hold information about the tokens being parsed. The corresponding unit test has been updated. Signed-off-by: Thomas N. Kramer --- .../testSuiteParser/TestSuiteParser.java | 82 ++++++++----------- .../testSuiteParser/TokenTracker.java | 21 +++++ .../TestSuiteParserParsingTest.java | 32 ++++---- 3 files changed, 69 insertions(+), 66 deletions(-) create mode 100644 src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TokenTracker.java diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index ddbfe1a5..8223608d 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -12,6 +12,7 @@ import java.util.Locale; import java.util.HashMap; import java.util.HashSet; +import java.util.concurrent.TransferQueue; /** * Parses the concatenated test suite and writes Cobol test code to the output @@ -180,9 +181,7 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, List parsedTestSuiteLines = new ArrayList<>(); numericFields = numericFieldsList; String testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); - String summizedTokensForArgument = Constants.EMPTY_STRING; - boolean lastAddedTokenToArgumentIsQualifier = false; - String parseDataUsingForSummizedTokens = Constants.EMPTY_STRING; + TokenTracker tracker = new TokenTracker(); while (testSuiteToken != null) { if (!testSuiteToken.startsWith(Constants.QUOTE) && !testSuiteToken.startsWith(Constants.APOSTROPHE)) { @@ -207,9 +206,8 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, expectMockArguments = false; expectUsing = false; - handleEndOfMockStatement(testSuiteReader, testSuiteToken, false, summizedTokensForArgument, parseDataUsingForSummizedTokens); - summizedTokensForArgument =Constants.EMPTY_STRING; - parseDataUsingForSummizedTokens =Constants.EMPTY_STRING; + handleEndOfMockStatement(testSuiteReader, testSuiteToken, false, tracker); + tracker.reset(); testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); continue; } @@ -223,9 +221,7 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, if (!verifyInProgress) { ignoreCobolStatementAndFieldNameKeyAction = true; - handleEndOfMockStatement(testSuiteReader, testSuiteToken, false, summizedTokensForArgument, parseDataUsingForSummizedTokens); - summizedTokensForArgument =Constants.EMPTY_STRING; - parseDataUsingForSummizedTokens =Constants.EMPTY_STRING; + handleEndOfMockStatement(testSuiteReader, testSuiteToken, false, tracker); } if(testSuiteToken.equals("END-MOCK") ){ testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); @@ -352,7 +348,6 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, toBeInProgress = false; } - if (expectMockIdentifier) { expectMockIdentifier = false; ignoreCobolStatementAndFieldNameKeyAction = true; @@ -364,9 +359,7 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, currentMock.setIdentifier(testSuiteToken); if (!expectMockArguments) { - handleEndOfMockStatement(testSuiteReader, testSuiteToken, true, summizedTokensForArgument, parseDataUsingForSummizedTokens); - summizedTokensForArgument =Constants.EMPTY_STRING; - parseDataUsingForSummizedTokens =Constants.EMPTY_STRING; + handleEndOfMockStatement(testSuiteReader, testSuiteToken, true, tracker); } } else { if (currentVerify.getType().equals(Constants.CALL_TOKEN)) { @@ -384,28 +377,27 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, currentLineContainsArgument = true; ignoreCobolStatementAndFieldNameKeyAction = true; - if (lastAddedTokenToArgumentIsQualifier) { + if (tracker.lastAddedTokenToArgumentIsQualifier) { // add field to the current mock argument - summizedTokensForArgument += Constants.SPACE + testSuiteToken.replace(",",""); - lastAddedTokenToArgumentIsQualifier = false; + tracker.summizedTokensForArgument += Constants.SPACE + testSuiteToken.replace(",",""); + tracker.lastAddedTokenToArgumentIsQualifier = false; } else { - if (summizedTokensForArgument != Constants.EMPTY_STRING) { + if (tracker.summizedTokensForArgument != Constants.EMPTY_STRING) { //We have something to add if (verifyInProgress) { - currentVerify.addArgument(getCallArgument(parseDataUsingForSummizedTokens, summizedTokensForArgument)); + currentVerify.addArgument(getCallArgument(tracker.parseDataUsingForSummizedTokens, tracker.summizedTokensForArgument)); } else { - currentMock.addArgument(getCallArgument(parseDataUsingForSummizedTokens, summizedTokensForArgument)); + currentMock.addArgument(getCallArgument(tracker.parseDataUsingForSummizedTokens, tracker.summizedTokensForArgument)); } - summizedTokensForArgument = Constants.EMPTY_STRING; - parseDataUsingForSummizedTokens = Constants.EMPTY_STRING; + tracker.reset(); } // if we are putting the variable name into summized and not a qualifier, we save the parse-data-as value - if (summizedTokensForArgument == Constants.EMPTY_STRING) { - parseDataUsingForSummizedTokens = parsingDataUsing; + if (tracker.summizedTokensForArgument == Constants.EMPTY_STRING) { + tracker.parseDataUsingForSummizedTokens = parsingDataUsing; parsingDataUsing = Constants.EMPTY_STRING; } - summizedTokensForArgument = testSuiteToken.replace(",",""); + tracker.summizedTokensForArgument = testSuiteToken.replace(",",""); } }else{ @@ -414,9 +406,7 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, if (!verifyInProgress) { ignoreCobolStatementAndFieldNameKeyAction = true; - handleEndOfMockStatement(testSuiteReader, testSuiteToken, currentLineContainsArgument, summizedTokensForArgument, parseDataUsingForSummizedTokens); - summizedTokensForArgument =Constants.EMPTY_STRING; - parseDataUsingForSummizedTokens =Constants.EMPTY_STRING; + handleEndOfMockStatement(testSuiteReader, testSuiteToken, currentLineContainsArgument, tracker); } } } @@ -470,9 +460,7 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, currentMock.setIdentifier(testSuiteToken); if (!expectMockArguments) { - handleEndOfMockStatement(testSuiteReader, testSuiteToken, true, summizedTokensForArgument, parseDataUsingForSummizedTokens); - summizedTokensForArgument = Constants.EMPTY_STRING; - parseDataUsingForSummizedTokens =Constants.EMPTY_STRING; + handleEndOfMockStatement(testSuiteReader, testSuiteToken, true, tracker); } } else { if (currentVerify.getType().equals(Constants.CALL_TOKEN)) { @@ -609,9 +597,7 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, case Constants.NEVER_HAPPENED_KEYWORD: expectMockArguments = false; currentVerify.expectExact("0"); - handleEndOfVerifyStatement(parsedTestSuiteLines, summizedTokensForArgument, parseDataUsingForSummizedTokens); - summizedTokensForArgument =Constants.EMPTY_STRING; - parseDataUsingForSummizedTokens =Constants.EMPTY_STRING; + handleEndOfVerifyStatement(parsedTestSuiteLines, tracker); break; case Constants.HAPPENED_KEYWORD: @@ -621,9 +607,7 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, case Constants.ONCE_KEYWORD: if (currentVerify != null){ currentVerify.setExpectedCount("1"); - handleEndOfVerifyStatement(parsedTestSuiteLines, summizedTokensForArgument, parseDataUsingForSummizedTokens); - summizedTokensForArgument =Constants.EMPTY_STRING; - parseDataUsingForSummizedTokens =Constants.EMPTY_STRING; + handleEndOfVerifyStatement(parsedTestSuiteLines, tracker); } break; @@ -643,9 +627,8 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, case Constants.TIME_KEYWORD: case Constants.TIMES_KEYWORD: - handleEndOfVerifyStatement(parsedTestSuiteLines, summizedTokensForArgument, parseDataUsingForSummizedTokens); - summizedTokensForArgument =Constants.EMPTY_STRING; - parseDataUsingForSummizedTokens =Constants.EMPTY_STRING; + handleEndOfVerifyStatement(parsedTestSuiteLines, tracker); + break; case Constants.TO_BE_KEYWORD: @@ -664,8 +647,8 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, if (cobolTokenIsFieldName){ fieldNameForExpect += Constants.SPACE + testSuiteToken + Constants.SPACE; expectQualifiedName = true; - summizedTokensForArgument += Constants.SPACE + Constants.IN_KEYWORD; - lastAddedTokenToArgumentIsQualifier = true; + tracker.summizedTokensForArgument += Constants.SPACE + Constants.IN_KEYWORD; + tracker.lastAddedTokenToArgumentIsQualifier = true; } else @@ -863,12 +846,12 @@ private TestSuiteWritingStyle getWritingStyleOfLine(String line) { } private void handleEndOfMockStatement(BufferedReader testSuiteReader, String testSuiteToken, - boolean skipCurrentToken, String hangingMockArgument, String parseDataUsing) { + boolean skipCurrentToken,TokenTracker tracker) { // First add any arguments, not yet added to currentMock - if (hangingMockArgument != Constants.EMPTY_STRING) { + if (tracker.summizedTokensForArgument != Constants.EMPTY_STRING) { //We have something to add to the Mock - currentMock.addArgument(getCallArgument(parseDataUsing, hangingMockArgument)); - hangingMockArgument = ""; + currentMock.addArgument(getCallArgument(tracker.parseDataUsingForSummizedTokens, tracker.summizedTokensForArgument)); + tracker.reset(); } List mockLines = getLinesUntilKeywordHit(testSuiteReader, Constants.ENDMOCK_KEYWORD, testSuiteToken, @@ -901,13 +884,12 @@ private void handleEndOfMockStatement(BufferedReader testSuiteReader, String tes * @throws VerifyReferencesNonexistentMockException if referenced mock, does not * exist */ - public void handleEndOfVerifyStatement(List parsedTestSuiteLines, String hangingVerifyArgument, String parseDataUsing) { + public void handleEndOfVerifyStatement(List parsedTestSuiteLines, TokenTracker tracker) { // First add any arguments, not yet added to currentMock - if (hangingVerifyArgument != Constants.EMPTY_STRING) { + if (tracker.summizedTokensForArgument != Constants.EMPTY_STRING) { //We have something to add to the Mock - currentVerify.addArgument(getCallArgument(parseDataUsing, hangingVerifyArgument)); - - hangingVerifyArgument = ""; + currentVerify.addArgument(getCallArgument(tracker.parseDataUsingForSummizedTokens, tracker.summizedTokensForArgument)); + tracker.reset(); } verifyInProgress = false; diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TokenTracker.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TokenTracker.java new file mode 100644 index 00000000..d8727845 --- /dev/null +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TokenTracker.java @@ -0,0 +1,21 @@ +package org.openmainframeproject.cobolcheck.features.testSuiteParser; + +import org.openmainframeproject.cobolcheck.services.Constants; + +/** + * Keeps track of properties for Tokens during the parsing + */ +public class TokenTracker { + + String summizedTokensForArgument = Constants.EMPTY_STRING; + String parseDataUsingForSummizedTokens = Constants.EMPTY_STRING; + boolean lastAddedTokenToArgumentIsQualifier = false; + + /** + * Resets the strings in the TokenTracker + */ + public void reset() { + this.summizedTokensForArgument = Constants.EMPTY_STRING; + this.parseDataUsingForSummizedTokens = Constants.EMPTY_STRING; + } +} diff --git a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteParserParsingTest.java b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteParserParsingTest.java index 054b6225..0f05a0c8 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteParserParsingTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteParserParsingTest.java @@ -266,7 +266,7 @@ public void it_generates_lines_for_verify_statement_with_exact_comparison() { new BufferedReader(new StringReader(testSuite.toString())), numericFields); List actualResult = new ArrayList<>(); - testSuiteParser.handleEndOfVerifyStatement(actualResult,Constants.EMPTY_STRING,Constants.EMPTY_STRING); + testSuiteParser.handleEndOfVerifyStatement(actualResult,new TokenTracker()); assertEquals(expectedResult, actualResult); } @@ -294,7 +294,7 @@ public void it_generates_lines_for_verify_statement_with_at_least_comparison() { new BufferedReader(new StringReader(testSuite.toString())), numericFields); List actualResult = new ArrayList<>(); - testSuiteParser.handleEndOfVerifyStatement(actualResult,Constants.EMPTY_STRING,Constants.EMPTY_STRING); + testSuiteParser.handleEndOfVerifyStatement(actualResult,new TokenTracker()); assertEquals(expectedResult, actualResult); } @@ -321,7 +321,7 @@ public void it_generates_lines_for_verify_statement_with_no_more_than_comparison new BufferedReader(new StringReader(testSuite.toString())), numericFields); List actualResult = new ArrayList<>(); - testSuiteParser.handleEndOfVerifyStatement(actualResult,Constants.EMPTY_STRING,Constants.EMPTY_STRING); + testSuiteParser.handleEndOfVerifyStatement(actualResult,new TokenTracker()); assertEquals(expectedResult, actualResult); } @@ -347,7 +347,7 @@ public void it_generates_lines_for_verify_never_happened_statement() { new BufferedReader(new StringReader(testSuite.toString())), numericFields); List actualResult = new ArrayList<>(); - testSuiteParser.handleEndOfVerifyStatement(actualResult,Constants.EMPTY_STRING,Constants.EMPTY_STRING); + testSuiteParser.handleEndOfVerifyStatement(actualResult,new TokenTracker()); assertEquals(expectedResult, actualResult); } @@ -373,7 +373,7 @@ public void it_generates_lines_for_verify_no_more_than_once_statement() { new BufferedReader(new StringReader(testSuite.toString())), numericFields); List actualResult = new ArrayList<>(); - testSuiteParser.handleEndOfVerifyStatement(actualResult,Constants.EMPTY_STRING,Constants.EMPTY_STRING); + testSuiteParser.handleEndOfVerifyStatement(actualResult,new TokenTracker()); assertEquals(expectedResult, actualResult); } @@ -399,7 +399,7 @@ public void it_generates_lines_for_verify_happened_once_statement() { new BufferedReader(new StringReader(testSuite.toString())), numericFields); List actualResult = new ArrayList<>(); - testSuiteParser.handleEndOfVerifyStatement(actualResult,Constants.EMPTY_STRING,Constants.EMPTY_STRING); + testSuiteParser.handleEndOfVerifyStatement(actualResult,new TokenTracker()); assertEquals(expectedResult, actualResult); } @@ -424,7 +424,7 @@ public void if_local_and_global_mock_exists_in_scope_verify_attaches_to_local() new BufferedReader(new StringReader(testSuite.toString())), numericFields); List actualResult = new ArrayList<>(); - testSuiteParser.handleEndOfVerifyStatement(actualResult,Constants.EMPTY_STRING,Constants.EMPTY_STRING); + testSuiteParser.handleEndOfVerifyStatement(actualResult,new TokenTracker()); assertEquals(expectedFirstLine, actualResult.get(0)); } @@ -451,7 +451,7 @@ public void verify_can_attach_to_global_mock() { new BufferedReader(new StringReader(testSuite.toString())), numericFields); List actualResult = new ArrayList<>(); - testSuiteParser.handleEndOfVerifyStatement(actualResult,Constants.EMPTY_STRING,Constants.EMPTY_STRING); + testSuiteParser.handleEndOfVerifyStatement(actualResult,new TokenTracker()); assertEquals(expectedResult, actualResult); } @@ -478,7 +478,7 @@ public void verify_can_attach_to_call_mock_with_no_arguments() { new BufferedReader(new StringReader(testSuite.toString())), numericFields); List actualResult = new ArrayList<>(); - testSuiteParser.handleEndOfVerifyStatement(actualResult,Constants.EMPTY_STRING,Constants.EMPTY_STRING); + testSuiteParser.handleEndOfVerifyStatement(actualResult,new TokenTracker()); assertEquals(expectedResult, actualResult); } @@ -507,7 +507,7 @@ public void verify_can_attach_to_call_mock_with_arguments() { new BufferedReader(new StringReader(testSuite.toString())), numericFields); List actualResult = new ArrayList<>(); - testSuiteParser.handleEndOfVerifyStatement(actualResult,Constants.EMPTY_STRING,Constants.EMPTY_STRING); + testSuiteParser.handleEndOfVerifyStatement(actualResult,new TokenTracker()); assertEquals(expectedResult, actualResult); } @@ -537,7 +537,7 @@ public void verify_can_attach_to_call_mock_with_one_qualified_argument() { new BufferedReader(new StringReader(testSuite.toString())), numericFields); List actualResult = new ArrayList<>(); - testSuiteParser.handleEndOfVerifyStatement(actualResult,Constants.EMPTY_STRING,Constants.EMPTY_STRING); + testSuiteParser.handleEndOfVerifyStatement(actualResult,new TokenTracker()); assertEquals(expectedResult, actualResult); } @@ -566,7 +566,7 @@ public void verify_can_attach_to_call_mock_with_qualified_arguments() { new BufferedReader(new StringReader(testSuite.toString())), numericFields); List actualResult = new ArrayList<>(); - testSuiteParser.handleEndOfVerifyStatement(actualResult,Constants.EMPTY_STRING,Constants.EMPTY_STRING); + testSuiteParser.handleEndOfVerifyStatement(actualResult,new TokenTracker()); assertEquals(expectedResult, actualResult); } @@ -595,7 +595,7 @@ public void verify_missing_call_mock_with_qualified_arguments() { Throwable ex = assertThrows(VerifyReferencesNonexistentMockException.class, () -> { testSuiteParser.getParsedTestSuiteLines(new BufferedReader(new StringReader(testSuite.toString())),numericFields); List actualResult = new ArrayList<>(); - testSuiteParser.handleEndOfVerifyStatement(actualResult, Constants.EMPTY_STRING, Constants.EMPTY_STRING); }); + testSuiteParser.handleEndOfVerifyStatement(actualResult,new TokenTracker()); }); assertTrue(ex.getMessage().indexOf("nonexistent mock")>-1); } @@ -625,7 +625,7 @@ public void verify_missing_call_mock_with_qualified_arguments_2() { Throwable ex = assertThrows(VerifyReferencesNonexistentMockException.class, () -> { testSuiteParser.getParsedTestSuiteLines(new BufferedReader(new StringReader(testSuite.toString())),numericFields); List actualResult = new ArrayList<>(); - testSuiteParser.handleEndOfVerifyStatement(actualResult, Constants.EMPTY_STRING, Constants.EMPTY_STRING); }); + testSuiteParser.handleEndOfVerifyStatement(actualResult,new TokenTracker()); }); assertTrue(ex.getMessage().indexOf("nonexistent mock")>-1); } @@ -656,7 +656,7 @@ public void verify_call_mock_with_qualified_arguments_mixed() { Throwable ex = assertThrows(VerifyReferencesNonexistentMockException.class, () -> { testSuiteParser.getParsedTestSuiteLines(new BufferedReader(new StringReader(testSuite.toString())),numericFields); List actualResult = new ArrayList<>(); - testSuiteParser.handleEndOfVerifyStatement(actualResult, Constants.EMPTY_STRING, Constants.EMPTY_STRING); }); + testSuiteParser.handleEndOfVerifyStatement(actualResult,new TokenTracker()); }); assertTrue(ex.getMessage().indexOf("nonexistent mock")>-1); } @@ -891,7 +891,7 @@ public void it_parses_testsuite_with_sequnece_area() { new BufferedReader(new StringReader(testSuite.toString())), numericFields); List actualResult = new ArrayList<>(); - testSuiteParser.handleEndOfVerifyStatement(actualResult,Constants.EMPTY_STRING,Constants.EMPTY_STRING); + testSuiteParser.handleEndOfVerifyStatement(actualResult,new TokenTracker()); assertEquals(expectedResult, actualResult); } From 8ca741ee60ba7d95c37cca762169bb25c7dc87fa Mon Sep 17 00:00:00 2001 From: Akash Kumar Date: Fri, 8 Sep 2023 16:42:36 +0530 Subject: [PATCH 150/180] add new config property Signed-off-by: Akash Kumar --- config.properties | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/config.properties b/config.properties index 82f4bedf..ce67cb50 100644 --- a/config.properties +++ b/config.properties @@ -63,6 +63,13 @@ cobolcheck.test.program.path = ./ #--------------------------------------------------------------------------------------------------------------------- cobolcheck.test.program.name = CC##99.CBL +#--------------------------------------------------------------------------------------------------------------------- +# If the given value is true, then the test with unmocked calls will be echoed and test summary +# will contain the number of unmocked calls. +# Default: true +#--------------------------------------------------------------------------------------------------------------------- +cobolcheck.test.unmockcall.display = true + #--------------------------------------------------------------------------------------------------------------------- # Path for the generated testsuite parse error log # Default: ./ From 6905cc5af1d29e171e2429b478ec4ed9fa66581f Mon Sep 17 00:00:00 2001 From: Akash Kumar Date: Fri, 8 Sep 2023 16:43:02 +0530 Subject: [PATCH 151/180] add function to fetch new config property Signed-off-by: Akash Kumar --- .../openmainframeproject/cobolcheck/services/Config.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/services/Config.java b/src/main/java/org/openmainframeproject/cobolcheck/services/Config.java index dcccd4ec..a4ec6b45 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/services/Config.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/services/Config.java @@ -30,6 +30,7 @@ public class Config { public static final String INJECT_END_TAG_CONFIG_KEY = "cobolcheck.injectedCodeTag.end"; public static final String STUB_COMMENT_TAG = "cobolcheck.stub.comment.tag"; public static final String GENERATED_CODE_PATH = "cobolcheck.test.program.path"; + public static final String DISPLAY_TESTS_WITH_UNMOCK_CALLS_CONFIG_KEY = "cobolcheck.test.unmockcall.display"; public static final String TESTSUITEPARSER_ERROR_LOG_PATH = "testsuite.parser.error.log.path"; public static final String TESTSUITEPARSER_ERROR_LOG_NAME = "testsuite.parser.error.log.name"; public static final String IO_ENCODING_LINUX_KEY = "cobolcheck.file.encoding.linux"; @@ -336,6 +337,11 @@ public static List getGnuCOBOLCompileOptions() { return (List)settings.get(RESOLVED_GNUCOBOL_COMPILE_OPTIONS); } + public static Boolean getDisplayUnMockedCalls() { + String value = settings.getProperty(DISPLAY_TESTS_WITH_UNMOCK_CALLS_CONFIG_KEY, "true"); + return Boolean.parseBoolean(value.trim()); + } + public static void setGnuCOBOLCompileOptions() { resolveConfigList(GNUCOBOL_COMPILE_OPTIONS, RESOLVED_GNUCOBOL_COMPILE_OPTIONS); } From c81e5ae28df4ffe92fda045e162006b2836ef552 Mon Sep 17 00:00:00 2001 From: Akash Kumar Date: Fri, 8 Sep 2023 16:43:41 +0530 Subject: [PATCH 152/180] add function to generate process-unmock-para Signed-off-by: Akash Kumar --- .../TestSuiteParserController.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParserController.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParserController.java index 60581522..3366d00e 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParserController.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParserController.java @@ -185,6 +185,7 @@ public List getProcedureDivisionTestCode() throws IOException { lines.add(""); lines.addAll(generateAfterParagraph()); lines.add(""); + lines.addAll(generateCobolLinesForUnmockedCalls()); lines.addAll(generateBeforeAfterBranchParagraphs(true)); lines.addAll(generateMockCountInitializer()); lines.add(""); @@ -235,6 +236,22 @@ public List generateBeforeAfterBranchParagraphs(boolean withComments){ return beforeAfterRepo.getAllBranchingParagraphs(withComments); } + public List generateCobolLinesForUnmockedCalls() { + List cobolLines = new ArrayList<>(); + cobolLines.add(" PROCESS-UNMOCK-CALL."); + String line1 = " Add 1 to %sNUMBER-UNMOCK-CALL"; + String line2 = " display \"Call not mocked in testcase \" %1$sTEST-CASE-NAME \" in testsuite \" %1$sTEST-SUITE-NAME"; + String line3 = " display \"All used calls should be mocked, to ensure the unit test has control over input data\"."; + if(Config.getDisplayUnMockedCalls()) { + String testCodePrefix = Config.getTestCodePrefix(); + cobolLines.add(String.format(line1, testCodePrefix)); + cobolLines.add(String.format(line2, testCodePrefix)); + cobolLines.add(line3); + } + cobolLines.add(""); + return cobolLines; + } + public boolean mockExistsFor(String identifier, String type, List arguments){ return mockRepository.mockExistsFor(identifier, type, arguments); } From 76147f39314bccf69134e9ff9ba4a692cab83e62 Mon Sep 17 00:00:00 2001 From: Akash Kumar Date: Fri, 8 Sep 2023 16:44:10 +0530 Subject: [PATCH 153/180] add code to implement new changes Signed-off-by: Akash Kumar --- .../cobolcheck/features/testSuiteParser/MockGenerator.java | 5 ++++- .../openmainframeproject/cobolcheck/workers/Generator.java | 4 ++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/MockGenerator.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/MockGenerator.java index eb188db6..cb8ca520 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/MockGenerator.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/MockGenerator.java @@ -5,6 +5,7 @@ import org.openmainframeproject.cobolcheck.services.StringHelper; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; public class MockGenerator { @@ -15,6 +16,8 @@ public class MockGenerator { private final String endEvaluateLine = " END-EVALUATE"; private final String continueLine = " CONTINUE"; + public final static String performUnMockPara = " PERFORM PROCESS-UNMOCK-CALL"; + private final String countMockInitialWSHeader = " 01 %sMOCKS-GENERATED."; private final String initializeMockCountParagraphHeader = " %sINITIALIZE-MOCK-COUNT."; @@ -121,7 +124,7 @@ List generateMockPerformCalls(String identifier, String type, List(), false); else - return evaluationGenerator.getEvaluationLines(false, null, true); + return evaluationGenerator.getEvaluationLines(true, Arrays.asList(performUnMockPara), true); } String getEndEvaluateLine() { diff --git a/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java b/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java index 567f98d5..0b4b32eb 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java @@ -12,6 +12,7 @@ import org.openmainframeproject.cobolcheck.features.interpreter.InterpreterController; import org.openmainframeproject.cobolcheck.features.prepareMerge.PrepareMergeController; import org.openmainframeproject.cobolcheck.features.testSuiteParser.Mock; +import org.openmainframeproject.cobolcheck.features.testSuiteParser.MockGenerator; import org.openmainframeproject.cobolcheck.features.testSuiteParser.TestSuiteParserController; import org.openmainframeproject.cobolcheck.features.writer.WriterController; import org.openmainframeproject.cobolcheck.services.Constants; @@ -222,6 +223,9 @@ private void processingAfterEchoingSourceLineToOutput() throws IOException { interpreter.setInsideSectionOrParagraphMockBody(true); } } + else if (type == Constants.CALL_TOKEN) { + writerController.writeLine(MockGenerator.performUnMockPara); + } } } From c56f5f5ae0bc02e3423768f1cc7c51ef7ecf093c Mon Sep 17 00:00:00 2001 From: Akash Kumar Date: Fri, 8 Sep 2023 16:44:41 +0530 Subject: [PATCH 154/180] add new test summary entry Signed-off-by: Akash Kumar --- .../cobolcheck/copybooks/CCHECKRESULTPD.CPY | 2 ++ .../org/openmainframeproject/cobolcheck/copybooks/CCHECKWS.CPY | 1 + 2 files changed, 3 insertions(+) diff --git a/src/main/resources/org/openmainframeproject/cobolcheck/copybooks/CCHECKRESULTPD.CPY b/src/main/resources/org/openmainframeproject/cobolcheck/copybooks/CCHECKRESULTPD.CPY index 343e0bda..829a1877 100644 --- a/src/main/resources/org/openmainframeproject/cobolcheck/copybooks/CCHECKRESULTPD.CPY +++ b/src/main/resources/org/openmainframeproject/cobolcheck/copybooks/CCHECKRESULTPD.CPY @@ -6,6 +6,8 @@ DISPLAY ==UT==TEST-CASE-NUMBER ' PASSED' MOVE ==UT==NUMBER-FAILED TO ==UT==TEST-CASE-NUMBER DISPLAY ==UT==TEST-CASE-NUMBER ' FAILED' + MOVE ==UT==NUMBER-UNMOCK-CALL TO ==UT==TEST-CASE-NUMBER + DISPLAY ==UT==TEST-CASE-NUMBER ' CALLS NOT MOCKED' DISPLAY "=================================================" MOVE ==UT==RETCODE TO RETURN-CODE GOBACK. diff --git a/src/main/resources/org/openmainframeproject/cobolcheck/copybooks/CCHECKWS.CPY b/src/main/resources/org/openmainframeproject/cobolcheck/copybooks/CCHECKWS.CPY index 9f3a057e..3c4c6f2d 100644 --- a/src/main/resources/org/openmainframeproject/cobolcheck/copybooks/CCHECKWS.CPY +++ b/src/main/resources/org/openmainframeproject/cobolcheck/copybooks/CCHECKWS.CPY @@ -66,6 +66,7 @@ 05 ==UT==TEST-CASE-COUNT PIC 9(4) VALUE ZERO COMP. 05 ==UT==NUMBER-PASSED PIC 9(4) VALUE ZERO COMP. 05 ==UT==NUMBER-FAILED PIC 9(4) VALUE ZERO COMP. + 05 ==UT==NUMBER-UNMOCK-CALL PIC 9(4) VALUE ZERO COMP. 05 ==UT==EXPECTED-TRIM PIC S9(5) COMP-3 VALUE ZERO. 05 ==UT==ACTUAL-TRIM PIC S9(5) COMP-3 VALUE ZERO. 01 ==UT==MOCKS. From 65885affe82ce839346721afb0a1d6ca9047a720 Mon Sep 17 00:00:00 2001 From: Akash Kumar Date: Fri, 8 Sep 2023 18:57:34 +0530 Subject: [PATCH 155/180] change test to incorporate new changes Signed-off-by: Akash Kumar --- .../cobolcheck/ExpanderTest.java | 48 +++++++++++++++++++ .../cobolcheck/MockIT.java | 37 +++++++++++++- .../cobolcheck/MockingTest.java | 14 ++++++ 3 files changed, 98 insertions(+), 1 deletion(-) diff --git a/src/test/java/org/openmainframeproject/cobolcheck/ExpanderTest.java b/src/test/java/org/openmainframeproject/cobolcheck/ExpanderTest.java index fc650e1b..14889969 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/ExpanderTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/ExpanderTest.java @@ -250,6 +250,13 @@ public void it_inserts_code_correctly_when_each_call_in_series_has_an_exception_ " CONTINUE " + Constants.NEWLINE + " . " + Constants.NEWLINE + " " + Constants.NEWLINE + + " PROCESS-UNMOCK-CALL. " + Constants.NEWLINE + + " Add 1 to UT-NUMBER-UNMOCK-CALL " + Constants.NEWLINE + + " display \"Call not mocked in testcase \" UT-TEST-CASE-NAME \" in " + Constants.NEWLINE + + " - \" testsuite \" UT-TEST-SUITE-NAME " + Constants.NEWLINE + + " display \"All used calls should be mocked, to ensure the unit " + Constants.NEWLINE + + " - \"test has control over input data\". " + Constants.NEWLINE + + " " + Constants.NEWLINE + " UT-INITIALIZE-MOCK-COUNT. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " *Sets all global mock counters and expected count to 0 " + Constants.NEWLINE + @@ -284,6 +291,13 @@ public void it_inserts_code_correctly_when_each_call_in_series_has_an_exception_ " CONTINUE " + Constants.NEWLINE + " . " + Constants.NEWLINE + " " + Constants.NEWLINE + + " PROCESS-UNMOCK-CALL. " + Constants.NEWLINE + + " Add 1 to UT-NUMBER-UNMOCK-CALL " + Constants.NEWLINE + + " display \"Call not mocked in testcase \" UT-TEST-CASE-NAME \" in " + Constants.NEWLINE + + " - \" testsuite \" UT-TEST-SUITE-NAME " + Constants.NEWLINE + + " display \"All used calls should be mocked, to ensure the unit " + Constants.NEWLINE + + " - \"test has control over input data\". " + Constants.NEWLINE + + " " + Constants.NEWLINE + " UT-INITIALIZE-MOCK-COUNT. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " *Sets all global mock counters and expected count to 0 " + Constants.NEWLINE + @@ -295,6 +309,7 @@ public void it_inserts_code_correctly_when_each_call_in_series_has_an_exception_ " * ON EXCEPTION " + Constants.NEWLINE + " * PERFORM 100-WELCOME " + Constants.NEWLINE + " *END-CALL. " + Constants.NEWLINE + + " PERFORM PROCESS-UNMOCK-CALL " + Constants.NEWLINE + " CONTINUE " + Constants.NEWLINE + " . "; @@ -321,6 +336,13 @@ public void it_inserts_code_correctly_when_each_call_in_series_has_an_exception_ " CONTINUE " + Constants.NEWLINE + " . " + Constants.NEWLINE + " " + Constants.NEWLINE + + " PROCESS-UNMOCK-CALL. " + Constants.NEWLINE + + " Add 1 to UT-NUMBER-UNMOCK-CALL " + Constants.NEWLINE + + " display \"Call not mocked in testcase \" UT-TEST-CASE-NAME \" in " + Constants.NEWLINE + + " - \" testsuite \" UT-TEST-SUITE-NAME " + Constants.NEWLINE + + " display \"All used calls should be mocked, to ensure the unit " + Constants.NEWLINE + + " - \"test has control over input data\". " + Constants.NEWLINE + + " " + Constants.NEWLINE + " UT-INITIALIZE-MOCK-COUNT. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " *Sets all global mock counters and expected count to 0 " + Constants.NEWLINE + @@ -331,6 +353,7 @@ public void it_inserts_code_correctly_when_each_call_in_series_has_an_exception_ " *CALL \"PROGRAM\" USING VALUE-1 " + Constants.NEWLINE + " * ON EXCEPTION " + Constants.NEWLINE + " * PERFORM 100-WELCOME. " + Constants.NEWLINE + + " PERFORM PROCESS-UNMOCK-CALL " + Constants.NEWLINE + " CONTINUE " + Constants.NEWLINE + " . "; @@ -357,6 +380,13 @@ public void it_inserts_code_correctly_when_each_call_in_series_has_an_exception_ " CONTINUE " + Constants.NEWLINE + " . " + Constants.NEWLINE + " " + Constants.NEWLINE + + " PROCESS-UNMOCK-CALL. " + Constants.NEWLINE + + " Add 1 to UT-NUMBER-UNMOCK-CALL " + Constants.NEWLINE + + " display \"Call not mocked in testcase \" UT-TEST-CASE-NAME \" in " + Constants.NEWLINE + + " - \" testsuite \" UT-TEST-SUITE-NAME " + Constants.NEWLINE + + " display \"All used calls should be mocked, to ensure the unit " + Constants.NEWLINE + + " - \"test has control over input data\". " + Constants.NEWLINE + + " " + Constants.NEWLINE + " UT-INITIALIZE-MOCK-COUNT. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " *Sets all global mock counters and expected count to 0 " + Constants.NEWLINE + @@ -367,6 +397,7 @@ public void it_inserts_code_correctly_when_each_call_in_series_has_an_exception_ " *CALL \"PROGRAM\" USING VALUE-1 " + Constants.NEWLINE + " * ON EXCEPTION " + Constants.NEWLINE + " * DISPLAY \"HELLO WORLD\". " + Constants.NEWLINE + + " PERFORM PROCESS-UNMOCK-CALL " + Constants.NEWLINE + " CONTINUE " + Constants.NEWLINE + " . "; @@ -393,6 +424,13 @@ public void it_inserts_code_correctly_when_each_call_in_series_has_an_exception_ " CONTINUE " + Constants.NEWLINE + " . " + Constants.NEWLINE + " " + Constants.NEWLINE + + " PROCESS-UNMOCK-CALL. " + Constants.NEWLINE + + " Add 1 to UT-NUMBER-UNMOCK-CALL " + Constants.NEWLINE + + " display \"Call not mocked in testcase \" UT-TEST-CASE-NAME \" in " + Constants.NEWLINE + + " - \" testsuite \" UT-TEST-SUITE-NAME " + Constants.NEWLINE + + " display \"All used calls should be mocked, to ensure the unit " + Constants.NEWLINE + + " - \"test has control over input data\". " + Constants.NEWLINE + + " " + Constants.NEWLINE + " UT-INITIALIZE-MOCK-COUNT. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " *Sets all global mock counters and expected count to 0 " + Constants.NEWLINE + @@ -407,6 +445,7 @@ public void it_inserts_code_correctly_when_each_call_in_series_has_an_exception_ " * DISPLAY \"HELLO WORLD\" " + Constants.NEWLINE + " * END-CALL " + Constants.NEWLINE + " *END-CALL " + Constants.NEWLINE + + " PERFORM PROCESS-UNMOCK-CALL " + Constants.NEWLINE + " CONTINUE " + Constants.NEWLINE + " DISPLAY \"NO COMMENTS\" " + Constants.NEWLINE; @@ -433,6 +472,13 @@ public void it_inserts_code_correctly_when_each_call_in_series_has_an_exception_ " CONTINUE " + Constants.NEWLINE + " . " + Constants.NEWLINE + " " + Constants.NEWLINE + + " PROCESS-UNMOCK-CALL. " + Constants.NEWLINE + + " Add 1 to UT-NUMBER-UNMOCK-CALL " + Constants.NEWLINE + + " display \"Call not mocked in testcase \" UT-TEST-CASE-NAME \" in " + Constants.NEWLINE + + " - \" testsuite \" UT-TEST-SUITE-NAME " + Constants.NEWLINE + + " display \"All used calls should be mocked, to ensure the unit " + Constants.NEWLINE + + " - \"test has control over input data\". " + Constants.NEWLINE + + " " + Constants.NEWLINE + " UT-INITIALIZE-MOCK-COUNT. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " *Sets all global mock counters and expected count to 0 " + Constants.NEWLINE + @@ -442,10 +488,12 @@ public void it_inserts_code_correctly_when_each_call_in_series_has_an_exception_ " " + Constants.NEWLINE + " *CALL \"PROGRAM\" USING DATA-1 ON EXCEPTION " + Constants.NEWLINE + " * DISPLAY \"ERROR\". " + Constants.NEWLINE + + " PERFORM PROCESS-UNMOCK-CALL " + Constants.NEWLINE + " CONTINUE " + Constants.NEWLINE + " . " + Constants.NEWLINE + " *CALL \"PROGRAM\" USING DATA-1 ON EXCEPTION " + Constants.NEWLINE + " * DISPLAY \"ERROR\". " + Constants.NEWLINE + + " PERFORM PROCESS-UNMOCK-CALL " + Constants.NEWLINE + " CONTINUE " + Constants.NEWLINE + " . " + Constants.NEWLINE; diff --git a/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java b/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java index 52474b7c..b9297457 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java @@ -286,6 +286,13 @@ public void it_inserts_call_mocks_without_commas_correctly() throws IOException " CONTINUE " + Constants.NEWLINE + " . " + Constants.NEWLINE + " " + Constants.NEWLINE + + " PROCESS-UNMOCK-CALL. " + Constants.NEWLINE + + " Add 1 to UT-NUMBER-UNMOCK-CALL " + Constants.NEWLINE + + " display \"Call not mocked in testcase \" UT-TEST-CASE-NAME \" in " + Constants.NEWLINE + + " - \" testsuite \" UT-TEST-SUITE-NAME " + Constants.NEWLINE + + " display \"All used calls should be mocked, to ensure the unit " + Constants.NEWLINE + + " - \"test has control over input data\". " + Constants.NEWLINE + + " " + Constants.NEWLINE + " UT-INITIALIZE-MOCK-COUNT. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " *Sets all global mock counters and expected count to 0 " + Constants.NEWLINE + @@ -404,6 +411,13 @@ public void it_inserts_call_mocks_without_commas_correctly() throws IOException " CONTINUE " + Constants.NEWLINE + " . " + Constants.NEWLINE + " " + Constants.NEWLINE + + " PROCESS-UNMOCK-CALL. " + Constants.NEWLINE + + " Add 1 to UT-NUMBER-UNMOCK-CALL " + Constants.NEWLINE + + " display \"Call not mocked in testcase \" UT-TEST-CASE-NAME \" in " + Constants.NEWLINE + + " - \" testsuite \" UT-TEST-SUITE-NAME " + Constants.NEWLINE + + " display \"All used calls should be mocked, to ensure the unit " + Constants.NEWLINE + + " - \"test has control over input data\". " + Constants.NEWLINE + + " " + Constants.NEWLINE + " UT-INITIALIZE-MOCK-COUNT. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " *Sets all global mock counters and expected count to 0 " + Constants.NEWLINE + @@ -580,6 +594,13 @@ public void it_inserts_call_mocks_without_commas_correctly() throws IOException " CONTINUE " + Constants.NEWLINE + " . " + Constants.NEWLINE + " " + Constants.NEWLINE + + " PROCESS-UNMOCK-CALL. " + Constants.NEWLINE + + " Add 1 to UT-NUMBER-UNMOCK-CALL " + Constants.NEWLINE + + " display \"Call not mocked in testcase \" UT-TEST-CASE-NAME \" in " + Constants.NEWLINE + + " - \" testsuite \" UT-TEST-SUITE-NAME " + Constants.NEWLINE + + " display \"All used calls should be mocked, to ensure the unit " + Constants.NEWLINE + + " - \"test has control over input data\". " + Constants.NEWLINE + + " " + Constants.NEWLINE + " UT-INITIALIZE-MOCK-COUNT. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " *Sets all global mock counters and expected count to 0 " + Constants.NEWLINE + @@ -669,6 +690,13 @@ public void it_inserts_call_mocks_without_commas_correctly() throws IOException " CONTINUE " + Constants.NEWLINE + " . " + Constants.NEWLINE + " " + Constants.NEWLINE + + " PROCESS-UNMOCK-CALL. " + Constants.NEWLINE + + " Add 1 to UT-NUMBER-UNMOCK-CALL " + Constants.NEWLINE + + " display \"Call not mocked in testcase \" UT-TEST-CASE-NAME \" in " + Constants.NEWLINE + + " - \" testsuite \" UT-TEST-SUITE-NAME " + Constants.NEWLINE + + " display \"All used calls should be mocked, to ensure the unit " + Constants.NEWLINE + + " - \"test has control over input data\". " + Constants.NEWLINE + + " " + Constants.NEWLINE + " UT-INITIALIZE-MOCK-COUNT. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " *Sets all global mock counters and expected count to 0 " + Constants.NEWLINE + @@ -788,7 +816,9 @@ public void it_inserts_call_mocks_without_commas_correctly() throws IOException " WHEN \"Mocking tests\" " + Constants.NEWLINE + " ALSO \"Simply a test\" " + Constants.NEWLINE + " PERFORM UT-1-2-2-MOCK " + Constants.NEWLINE + - " END-EVALUATE " + Constants.NEWLINE + + " WHEN OTHER " + Constants.NEWLINE + + " PERFORM PROCESS-UNMOCK-CALL " + Constants.NEWLINE + + " END-EVALUATE " + Constants.NEWLINE + " CONTINUE " + Constants.NEWLINE + " MOVE \"Hello\" to VALUE-1. " + Constants.NEWLINE + " . " + Constants.NEWLINE + @@ -805,6 +835,7 @@ public void it_inserts_call_mocks_without_commas_correctly() throws IOException " ALSO \"Simply a test\" " + Constants.NEWLINE + " PERFORM UT-1-2-3-MOCK " + Constants.NEWLINE + " WHEN OTHER " + Constants.NEWLINE + + " PERFORM PROCESS-UNMOCK-CALL " + Constants.NEWLINE + " PERFORM UT-1-2-2-WO " + Constants.NEWLINE + " END-EVALUATE " + Constants.NEWLINE + " . " + Constants.NEWLINE + @@ -825,6 +856,8 @@ public void it_inserts_call_mocks_without_commas_correctly() throws IOException " WHEN \"Mocking tests\" " + Constants.NEWLINE + " ALSO ANY " + Constants.NEWLINE + " PERFORM UT-1-0-2-MOCK " + Constants.NEWLINE + + " WHEN OTHER " + Constants.NEWLINE + + " PERFORM PROCESS-UNMOCK-CALL " + Constants.NEWLINE + " END-EVALUATE " + Constants.NEWLINE + " CONTINUE " + Constants.NEWLINE + " * CALL 'prog2' USING VALUE-1. " + Constants.NEWLINE + @@ -833,6 +866,8 @@ public void it_inserts_call_mocks_without_commas_correctly() throws IOException " WHEN \"Mocking tests\" " + Constants.NEWLINE + " ALSO ANY " + Constants.NEWLINE + " PERFORM UT-1-0-2-MOCK " + Constants.NEWLINE + + " WHEN OTHER " + Constants.NEWLINE + + " PERFORM PROCESS-UNMOCK-CALL " + Constants.NEWLINE + " END-EVALUATE " + Constants.NEWLINE + " CONTINUE " + Constants.NEWLINE + " . " + Constants.NEWLINE + diff --git a/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java b/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java index 996b401a..33d3a7b6 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java @@ -736,6 +736,8 @@ public void single_local_mock_call_perform_evaluate_is_generated_correctly() thr expected.add(" WHEN \"Name of test suite\""); expected.add(" ALSO \"Name of test case\""); expected.add(" PERFORM UT-1-1-1-MOCK"); + expected.add(" WHEN OTHER"); + expected.add(" PERFORM PROCESS-UNMOCK-CALL"); expected.add(" END-EVALUATE"); Mockito.when(mockedReader.readLine()).thenReturn(str1, str2, str3, str4, str5, str6, null); @@ -964,6 +966,8 @@ public void CALL_MOCK_param_is_qualified_single() throws IOException { expected.add(" WHEN \"Name of test suite\""); expected.add(" ALSO \"Name of test case\""); expected.add(" PERFORM UT-1-1-1-MOCK"); + expected.add(" WHEN OTHER"); + expected.add(" PERFORM PROCESS-UNMOCK-CALL"); expected.add(" END-EVALUATE"); Mockito.when(mockedReader.readLine()).thenReturn(str1, str2, str3, str4, str5, str6, null); @@ -993,6 +997,8 @@ public void CALL_MOCK_param_is_qualified_two_but_one() throws IOException { expected.add(" WHEN \"Name of test suite\""); expected.add(" ALSO \"Name of test case\""); expected.add(" PERFORM UT-1-1-1-MOCK"); + expected.add(" WHEN OTHER"); + expected.add(" PERFORM PROCESS-UNMOCK-CALL"); expected.add(" END-EVALUATE"); Mockito.when(mockedReader.readLine()).thenReturn(str1, str2, str3, str4, str5, str6, str7, null); @@ -1023,6 +1029,8 @@ public void CALL_MOCK_param_is_qualified_three() throws IOException { expected.add(" WHEN \"Name of test suite\""); expected.add(" ALSO \"Name of test case\""); expected.add(" PERFORM UT-1-1-1-MOCK"); + expected.add(" WHEN OTHER"); + expected.add(" PERFORM PROCESS-UNMOCK-CALL"); expected.add(" END-EVALUATE"); Mockito.when(mockedReader.readLine()).thenReturn(str1, str2, str3, str4, str5, str6, str7,str8, null); @@ -1056,6 +1064,8 @@ public void CALL_MOCK_param_three_is_qualified_three_is_not() throws IOException expected.add(" WHEN \"Name of test suite\""); expected.add(" ALSO \"Name of test case\""); expected.add(" PERFORM UT-1-1-1-MOCK"); + expected.add(" WHEN OTHER"); + expected.add(" PERFORM PROCESS-UNMOCK-CALL"); expected.add(" END-EVALUATE"); Mockito.when(mockedReader.readLine()).thenReturn(str1, str2, str3, str4, str5, str6, str7,str8,str9,str10,str11, null); @@ -1089,6 +1099,8 @@ public void CALL_MOCK_param_six_is_qualified() throws IOException { expected.add(" WHEN \"Name of test suite\""); expected.add(" ALSO \"Name of test case\""); expected.add(" PERFORM UT-1-1-1-MOCK"); + expected.add(" WHEN OTHER"); + expected.add(" PERFORM PROCESS-UNMOCK-CALL"); expected.add(" END-EVALUATE"); Mockito.when(mockedReader.readLine()).thenReturn(str1, str2, str3, str4, str5, str6, str7,str8,str9,str10,str11, null); @@ -1126,6 +1138,8 @@ public void CALL_MOCK_param_five_is_qualified_six_is_not() throws IOException { expected.add(" WHEN \"Name of test suite\""); expected.add(" ALSO \"Name of test case\""); expected.add(" PERFORM UT-1-1-1-MOCK"); + expected.add(" WHEN OTHER"); + expected.add(" PERFORM PROCESS-UNMOCK-CALL"); expected.add(" END-EVALUATE"); Mockito.when(mockedReader.readLine()).thenReturn(str1, str2, str3, str4, str5, str6, str7,str8,str9,str10,str11,str12,str13,str14,str15,str16, null); From ee43eff982deef0caaf02a50ff65fe04f58b0139 Mon Sep 17 00:00:00 2001 From: Akash Kumar Date: Tue, 12 Sep 2023 00:09:18 +0530 Subject: [PATCH 156/180] fix bug Signed-off-by: Akash Kumar --- .../features/testSuiteParser/MockGenerator.java | 5 ++++- .../testSuiteParser/TestSuiteParserController.java | 8 +++++--- .../cobolcheck/workers/Generator.java | 8 +++++++- 3 files changed, 16 insertions(+), 5 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/MockGenerator.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/MockGenerator.java index cb8ca520..ad6c83aa 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/MockGenerator.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/MockGenerator.java @@ -123,8 +123,11 @@ List generateMockPerformCalls(String identifier, String type, List(), false); - else + else if(type.equals(Constants.CALL_TOKEN)) return evaluationGenerator.getEvaluationLines(true, Arrays.asList(performUnMockPara), true); + + else + return evaluationGenerator.getEvaluationLines(false, null, true); } String getEndEvaluateLine() { diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParserController.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParserController.java index 3366d00e..cfd6d30a 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParserController.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParserController.java @@ -239,15 +239,17 @@ public List generateBeforeAfterBranchParagraphs(boolean withComments){ public List generateCobolLinesForUnmockedCalls() { List cobolLines = new ArrayList<>(); cobolLines.add(" PROCESS-UNMOCK-CALL."); - String line1 = " Add 1 to %sNUMBER-UNMOCK-CALL"; - String line2 = " display \"Call not mocked in testcase \" %1$sTEST-CASE-NAME \" in testsuite \" %1$sTEST-SUITE-NAME"; - String line3 = " display \"All used calls should be mocked, to ensure the unit test has control over input data\"."; if(Config.getDisplayUnMockedCalls()) { + String line1 = " Add 1 to %sNUMBER-UNMOCK-CALL"; + String line2 = " display \"Call not mocked in testcase \" %1$sTEST-CASE-NAME \" in testsuite \" %1$sTEST-SUITE-NAME"; + String line3 = " display \"All used calls should be mocked, to ensure the unit test has control over input data\""; + String testCodePrefix = Config.getTestCodePrefix(); cobolLines.add(String.format(line1, testCodePrefix)); cobolLines.add(String.format(line2, testCodePrefix)); cobolLines.add(line3); } + cobolLines.add(" ."); cobolLines.add(""); return cobolLines; } diff --git a/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java b/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java index 0b4b32eb..d7bd7d13 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java @@ -224,7 +224,13 @@ private void processingAfterEchoingSourceLineToOutput() throws IOException { } } else if (type == Constants.CALL_TOKEN) { - writerController.writeLine(MockGenerator.performUnMockPara); + String formattedPerformUnMockParaStatement = MockGenerator.performUnMockPara.substring(9); + if(!interpreter.isInsideSectionOrParagraphMockBody()) { + writerController.writeLine(formattedPerformUnMockParaStatement); + } + else { + interpreter.addSectionOrParagraphLine(formattedPerformUnMockParaStatement); + } } } } From e74bf5de0f3d5bbd12a09d039e78a53c5e4504a8 Mon Sep 17 00:00:00 2001 From: Akash Kumar Date: Tue, 12 Sep 2023 00:10:55 +0530 Subject: [PATCH 157/180] add and modify tests Signed-off-by: Akash Kumar --- .../cobolcheck/services/Config.java | 4 + .../cobolcheck/ExpanderTest.java | 216 ++++++++++++++++-- .../cobolcheck/MockIT.java | 14 +- 3 files changed, 213 insertions(+), 21 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/services/Config.java b/src/main/java/org/openmainframeproject/cobolcheck/services/Config.java index a4ec6b45..a5575621 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/services/Config.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/services/Config.java @@ -96,6 +96,10 @@ public static void load(String configResourceName) { setCopybookFilenameSuffix(); } + public static void changeProperty(String propertyName, String newValue) { + settings.setProperty(propertyName, newValue); + } + public static String getString(String key) { return getString(key, Constants.EMPTY_STRING); } diff --git a/src/test/java/org/openmainframeproject/cobolcheck/ExpanderTest.java b/src/test/java/org/openmainframeproject/cobolcheck/ExpanderTest.java index 14889969..83ae2842 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/ExpanderTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/ExpanderTest.java @@ -14,6 +14,8 @@ import org.openmainframeproject.cobolcheck.testhelpers.Utilities; import org.openmainframeproject.cobolcheck.workers.Generator; +import net.bytebuddy.asm.Advice.Local; + import java.io.BufferedReader; import java.io.IOException; import java.io.StringWriter; @@ -210,6 +212,59 @@ public void it_inserts_code_correctly_when_each_call_in_series_has_an_exception_ assertEquals(Utilities.getTrimmedList(expected6), actual); } + @Test + public void it_inserts_code_correctly_when_all_calls_are_unmocked_and_config_property_is_false() + throws IOException { + Config.changeProperty("cobolcheck.test.unmockcall.display", "false"); + String s1 = " WORKING-STORAGE SECTION."; + String s2 = " PROCEDURE DIVISION."; + String s3 = " 100-PARA."; + String s4 = " CALL 'PROG'."; + + String t1 = " TestSuite \"test\""; + String t2 = " TestCase \"para with unmock call\""; + String t3 = " PERFORM 100-PARA"; + + Mockito.when(mockedInterpreterReader.readLine()).thenReturn(s1, s2, s3, s4, null); + Mockito.when(mockedParserReader.readLine()).thenReturn(t1, t2, t3, null); + + generator = new Generator(interpreterController, writerController, testSuiteParserController); + + List actual = Utilities + .getTrimmedList(Utilities.removeBoilerPlateCode(writer.toString(), boilerPlateTags)); + + assertEquals(Utilities.getTrimmedList(expected7), actual); + Config.changeProperty("cobolcheck.test.unmockcall.display", "true"); + } + + @Test + public void it_inserts_code_correctly_when_there_are_some_unmock_calls_and_config_property_is_false() + throws IOException { + Config.changeProperty("cobolcheck.test.unmockcall.display", "false"); + String s1 = " WORKING-STORAGE SECTION."; + String s2 = " PROCEDURE DIVISION."; + String s3 = " 100-PARA."; + String s4 = " CALL 'PROG'."; + String s5 = " CALL 'PROG2'."; + + String t1 = " TestSuite \"test\""; + String t2 = " TestCase \"para with unmock call\""; + String t3 = " MOCK CALL 'PROG'"; + String t4 = " END-MOCK"; + String t5 = " PERFORM 100-PARA"; + + Mockito.when(mockedInterpreterReader.readLine()).thenReturn(s1, s2, s3, s4, s5, null); + Mockito.when(mockedParserReader.readLine()).thenReturn(t1, t2, t3, t4, t5, null); + + generator = new Generator(interpreterController, writerController, testSuiteParserController); + + List actual = Utilities + .getTrimmedList(Utilities.removeBoilerPlateCode(writer.toString(), boilerPlateTags)); + + assertEquals(Utilities.getTrimmedList(expected8), actual); + Config.changeProperty("cobolcheck.test.unmockcall.display", "true"); + } + private String expected1 = " WORKING-STORAGE SECTION. " + Constants.NEWLINE + " *EXEC SQL INCLUDE TEXEM END-EXEC. " + Constants.NEWLINE + @@ -255,7 +310,8 @@ public void it_inserts_code_correctly_when_each_call_in_series_has_an_exception_ " display \"Call not mocked in testcase \" UT-TEST-CASE-NAME \" in " + Constants.NEWLINE + " - \" testsuite \" UT-TEST-SUITE-NAME " + Constants.NEWLINE + " display \"All used calls should be mocked, to ensure the unit " + Constants.NEWLINE + - " - \"test has control over input data\". " + Constants.NEWLINE + + " - \"test has control over input data\" " + Constants.NEWLINE + + " . " + Constants.NEWLINE + " " + Constants.NEWLINE + " UT-INITIALIZE-MOCK-COUNT. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + @@ -296,7 +352,8 @@ public void it_inserts_code_correctly_when_each_call_in_series_has_an_exception_ " display \"Call not mocked in testcase \" UT-TEST-CASE-NAME \" in " + Constants.NEWLINE + " - \" testsuite \" UT-TEST-SUITE-NAME " + Constants.NEWLINE + " display \"All used calls should be mocked, to ensure the unit " + Constants.NEWLINE + - " - \"test has control over input data\". " + Constants.NEWLINE + + " - \"test has control over input data\" " + Constants.NEWLINE + + " . " + Constants.NEWLINE + " " + Constants.NEWLINE + " UT-INITIALIZE-MOCK-COUNT. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + @@ -309,12 +366,12 @@ public void it_inserts_code_correctly_when_each_call_in_series_has_an_exception_ " * ON EXCEPTION " + Constants.NEWLINE + " * PERFORM 100-WELCOME " + Constants.NEWLINE + " *END-CALL. " + Constants.NEWLINE + - " PERFORM PROCESS-UNMOCK-CALL " + Constants.NEWLINE + + " PERFORM PROCESS-UNMOCK-CALL " + Constants.NEWLINE + " CONTINUE " + Constants.NEWLINE + " . "; private String expected3 = - " WORKING-STORAGE SECTION. " + Constants.NEWLINE + + " WORKING-STORAGE SECTION. " + Constants.NEWLINE + " PROCEDURE DIVISION. " + Constants.NEWLINE + " PERFORM UT-INITIALIZE " + Constants.NEWLINE + " *============= \"test\" =============* " + Constants.NEWLINE + @@ -341,7 +398,8 @@ public void it_inserts_code_correctly_when_each_call_in_series_has_an_exception_ " display \"Call not mocked in testcase \" UT-TEST-CASE-NAME \" in " + Constants.NEWLINE + " - \" testsuite \" UT-TEST-SUITE-NAME " + Constants.NEWLINE + " display \"All used calls should be mocked, to ensure the unit " + Constants.NEWLINE + - " - \"test has control over input data\". " + Constants.NEWLINE + + " - \"test has control over input data\" " + Constants.NEWLINE + + " . " + Constants.NEWLINE + " " + Constants.NEWLINE + " UT-INITIALIZE-MOCK-COUNT. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + @@ -353,7 +411,7 @@ public void it_inserts_code_correctly_when_each_call_in_series_has_an_exception_ " *CALL \"PROGRAM\" USING VALUE-1 " + Constants.NEWLINE + " * ON EXCEPTION " + Constants.NEWLINE + " * PERFORM 100-WELCOME. " + Constants.NEWLINE + - " PERFORM PROCESS-UNMOCK-CALL " + Constants.NEWLINE + + " PERFORM PROCESS-UNMOCK-CALL " + Constants.NEWLINE + " CONTINUE " + Constants.NEWLINE + " . "; @@ -385,7 +443,8 @@ public void it_inserts_code_correctly_when_each_call_in_series_has_an_exception_ " display \"Call not mocked in testcase \" UT-TEST-CASE-NAME \" in " + Constants.NEWLINE + " - \" testsuite \" UT-TEST-SUITE-NAME " + Constants.NEWLINE + " display \"All used calls should be mocked, to ensure the unit " + Constants.NEWLINE + - " - \"test has control over input data\". " + Constants.NEWLINE + + " - \"test has control over input data\" " + Constants.NEWLINE + + " . " + Constants.NEWLINE + " " + Constants.NEWLINE + " UT-INITIALIZE-MOCK-COUNT. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + @@ -397,7 +456,7 @@ public void it_inserts_code_correctly_when_each_call_in_series_has_an_exception_ " *CALL \"PROGRAM\" USING VALUE-1 " + Constants.NEWLINE + " * ON EXCEPTION " + Constants.NEWLINE + " * DISPLAY \"HELLO WORLD\". " + Constants.NEWLINE + - " PERFORM PROCESS-UNMOCK-CALL " + Constants.NEWLINE + + " PERFORM PROCESS-UNMOCK-CALL " + Constants.NEWLINE + " CONTINUE " + Constants.NEWLINE + " . "; @@ -429,7 +488,8 @@ public void it_inserts_code_correctly_when_each_call_in_series_has_an_exception_ " display \"Call not mocked in testcase \" UT-TEST-CASE-NAME \" in " + Constants.NEWLINE + " - \" testsuite \" UT-TEST-SUITE-NAME " + Constants.NEWLINE + " display \"All used calls should be mocked, to ensure the unit " + Constants.NEWLINE + - " - \"test has control over input data\". " + Constants.NEWLINE + + " - \"test has control over input data\" " + Constants.NEWLINE + + " . " + Constants.NEWLINE + " " + Constants.NEWLINE + " UT-INITIALIZE-MOCK-COUNT. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + @@ -445,7 +505,7 @@ public void it_inserts_code_correctly_when_each_call_in_series_has_an_exception_ " * DISPLAY \"HELLO WORLD\" " + Constants.NEWLINE + " * END-CALL " + Constants.NEWLINE + " *END-CALL " + Constants.NEWLINE + - " PERFORM PROCESS-UNMOCK-CALL " + Constants.NEWLINE + + " PERFORM PROCESS-UNMOCK-CALL " + Constants.NEWLINE + " CONTINUE " + Constants.NEWLINE + " DISPLAY \"NO COMMENTS\" " + Constants.NEWLINE; @@ -477,7 +537,8 @@ public void it_inserts_code_correctly_when_each_call_in_series_has_an_exception_ " display \"Call not mocked in testcase \" UT-TEST-CASE-NAME \" in " + Constants.NEWLINE + " - \" testsuite \" UT-TEST-SUITE-NAME " + Constants.NEWLINE + " display \"All used calls should be mocked, to ensure the unit " + Constants.NEWLINE + - " - \"test has control over input data\". " + Constants.NEWLINE + + " - \"test has control over input data\" " + Constants.NEWLINE + + " . " + Constants.NEWLINE + " " + Constants.NEWLINE + " UT-INITIALIZE-MOCK-COUNT. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + @@ -488,15 +549,138 @@ public void it_inserts_code_correctly_when_each_call_in_series_has_an_exception_ " " + Constants.NEWLINE + " *CALL \"PROGRAM\" USING DATA-1 ON EXCEPTION " + Constants.NEWLINE + " * DISPLAY \"ERROR\". " + Constants.NEWLINE + - " PERFORM PROCESS-UNMOCK-CALL " + Constants.NEWLINE + + " PERFORM PROCESS-UNMOCK-CALL " + Constants.NEWLINE + " CONTINUE " + Constants.NEWLINE + " . " + Constants.NEWLINE + " *CALL \"PROGRAM\" USING DATA-1 ON EXCEPTION " + Constants.NEWLINE + " * DISPLAY \"ERROR\". " + Constants.NEWLINE + - " PERFORM PROCESS-UNMOCK-CALL " + Constants.NEWLINE + + " PERFORM PROCESS-UNMOCK-CALL " + Constants.NEWLINE + " CONTINUE " + Constants.NEWLINE + " . " + Constants.NEWLINE; -} - - + private String expected7 = + " WORKING-STORAGE SECTION. " + Constants.NEWLINE + + " PROCEDURE DIVISION. " + Constants.NEWLINE + + " PERFORM UT-INITIALIZE " + Constants.NEWLINE + + " *============= \"test\" =============* " + Constants.NEWLINE + + " DISPLAY \"TESTSUITE:\" " + Constants.NEWLINE + + " DISPLAY \"test\" " + Constants.NEWLINE + + " MOVE \"test\" " + Constants.NEWLINE + + " TO UT-TEST-SUITE-NAME " + Constants.NEWLINE + + " *-------- \"para with unmock call\" " + Constants.NEWLINE + + " MOVE SPACES " + Constants.NEWLINE + + " TO UT-TEST-CASE-NAME " + Constants.NEWLINE + + " PERFORM UT-BEFORE-EACH " + Constants.NEWLINE + + " MOVE \"para with unmock call\" " + Constants.NEWLINE + + " TO UT-TEST-CASE-NAME " + Constants.NEWLINE + + " PERFORM UT-INITIALIZE-MOCK-COUNT " + Constants.NEWLINE + + " PERFORM 100-PARA " + Constants.NEWLINE + + " MOVE SPACES " + Constants.NEWLINE + + " TO UT-TEST-CASE-NAME " + Constants.NEWLINE + + " PERFORM UT-AFTER-EACH " + Constants.NEWLINE + + " UT-BEFORE-EACH. " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " *This is performed before each Test Case " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + + " . " + Constants.NEWLINE + + " " + Constants.NEWLINE + + " UT-AFTER-EACH. " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " *This is performed after each Test Case " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + + " . " + Constants.NEWLINE + + " " + Constants.NEWLINE + + " PROCESS-UNMOCK-CALL. " + Constants.NEWLINE + + " . " + Constants.NEWLINE + + " " + Constants.NEWLINE + + " UT-INITIALIZE-MOCK-COUNT. " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " *Sets all global mock counters and expected count to 0 " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + + " . " + Constants.NEWLINE + + " " + Constants.NEWLINE + + " 100-PARA. " + Constants.NEWLINE + + " * CALL 'PROG'. " + Constants.NEWLINE + + " PERFORM PROCESS-UNMOCK-CALL " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + + " . " + Constants.NEWLINE; + private String expected8 = + " WORKING-STORAGE SECTION. " + Constants.NEWLINE + + " 01 UT-MOCKS-GENERATED. " + Constants.NEWLINE + + " 05 UT-1-1-1-MOCK-COUNT PIC 9(18) VALUE ZERO COMP. " + Constants.NEWLINE + + " 05 UT-1-1-1-MOCK-EXPECTED PIC 9(18) VALUE ZERO COMP. " + Constants.NEWLINE + + " 05 UT-1-1-1-MOCK-NAME PIC X(40) " + Constants.NEWLINE + + " VALUE \"CALL 'PROG'\". " + Constants.NEWLINE + + " PROCEDURE DIVISION. " + Constants.NEWLINE + + " PERFORM UT-INITIALIZE " + Constants.NEWLINE + + " *============= \"test\" =============* " + Constants.NEWLINE + + " DISPLAY \"TESTSUITE:\" " + Constants.NEWLINE + + " DISPLAY \"test\" " + Constants.NEWLINE + + " MOVE \"test\" " + Constants.NEWLINE + + " TO UT-TEST-SUITE-NAME " + Constants.NEWLINE + + " *-------- \"para with unmock call\" " + Constants.NEWLINE + + " MOVE SPACES " + Constants.NEWLINE + + " TO UT-TEST-CASE-NAME " + Constants.NEWLINE + + " PERFORM UT-BEFORE-EACH " + Constants.NEWLINE + + " MOVE \"para with unmock call\" " + Constants.NEWLINE + + " TO UT-TEST-CASE-NAME " + Constants.NEWLINE + + " PERFORM UT-INITIALIZE-MOCK-COUNT " + Constants.NEWLINE + + " PERFORM 100-PARA " + Constants.NEWLINE + + " MOVE SPACES " + Constants.NEWLINE + + " TO UT-TEST-CASE-NAME " + Constants.NEWLINE + + " PERFORM UT-AFTER-EACH " + Constants.NEWLINE + + " UT-BEFORE-EACH. " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " *This is performed before each Test Case " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + + " . " + Constants.NEWLINE + + " " + Constants.NEWLINE + + " UT-AFTER-EACH. " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " *This is performed after each Test Case " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + + " . " + Constants.NEWLINE + + " " + Constants.NEWLINE + + " PROCESS-UNMOCK-CALL. " + Constants.NEWLINE + + " . " + Constants.NEWLINE + + " " + Constants.NEWLINE + + " UT-INITIALIZE-MOCK-COUNT. " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " *Sets all global mock counters and expected count to 0 " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " . " + Constants.NEWLINE + + " " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " *Paragraphs called when mocking " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " UT-1-1-1-MOCK. " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " *Local mock of: CALL: 'PROG' " + Constants.NEWLINE + + " *In testsuite: \"test\" " + Constants.NEWLINE + + " *In testcase: \"para with unmock call\" " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " ADD 1 TO UT-1-1-1-MOCK-COUNT " + Constants.NEWLINE + + " . " + Constants.NEWLINE + + " " + Constants.NEWLINE + + " 100-PARA. " + Constants.NEWLINE + + " * CALL 'PROG'. " + Constants.NEWLINE + + " EVALUATE UT-TEST-SUITE-NAME " + Constants.NEWLINE + + " ALSO UT-TEST-CASE-NAME " + Constants.NEWLINE + + " WHEN \"test\" " + Constants.NEWLINE + + " ALSO \"para with unmock call\" " + Constants.NEWLINE + + " PERFORM UT-1-1-1-MOCK " + Constants.NEWLINE + + " WHEN OTHER " + Constants.NEWLINE + + " PERFORM PROCESS-UNMOCK-CALL " + Constants.NEWLINE + + " END-EVALUATE " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + + " . " + Constants.NEWLINE + + " * CALL 'PROG2'. " + Constants.NEWLINE + + " PERFORM PROCESS-UNMOCK-CALL " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + + " . " + Constants.NEWLINE; +} \ No newline at end of file diff --git a/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java b/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java index b9297457..22a30904 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java @@ -291,7 +291,8 @@ public void it_inserts_call_mocks_without_commas_correctly() throws IOException " display \"Call not mocked in testcase \" UT-TEST-CASE-NAME \" in " + Constants.NEWLINE + " - \" testsuite \" UT-TEST-SUITE-NAME " + Constants.NEWLINE + " display \"All used calls should be mocked, to ensure the unit " + Constants.NEWLINE + - " - \"test has control over input data\". " + Constants.NEWLINE + + " - \"test has control over input data\" " + Constants.NEWLINE + + " . " + Constants.NEWLINE + " " + Constants.NEWLINE + " UT-INITIALIZE-MOCK-COUNT. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + @@ -416,7 +417,8 @@ public void it_inserts_call_mocks_without_commas_correctly() throws IOException " display \"Call not mocked in testcase \" UT-TEST-CASE-NAME \" in " + Constants.NEWLINE + " - \" testsuite \" UT-TEST-SUITE-NAME " + Constants.NEWLINE + " display \"All used calls should be mocked, to ensure the unit " + Constants.NEWLINE + - " - \"test has control over input data\". " + Constants.NEWLINE + + " - \"test has control over input data\" " + Constants.NEWLINE + + " . " + Constants.NEWLINE + " " + Constants.NEWLINE + " UT-INITIALIZE-MOCK-COUNT. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + @@ -599,7 +601,8 @@ public void it_inserts_call_mocks_without_commas_correctly() throws IOException " display \"Call not mocked in testcase \" UT-TEST-CASE-NAME \" in " + Constants.NEWLINE + " - \" testsuite \" UT-TEST-SUITE-NAME " + Constants.NEWLINE + " display \"All used calls should be mocked, to ensure the unit " + Constants.NEWLINE + - " - \"test has control over input data\". " + Constants.NEWLINE + + " - \"test has control over input data\" " + Constants.NEWLINE + + " . " + Constants.NEWLINE + " " + Constants.NEWLINE + " UT-INITIALIZE-MOCK-COUNT. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + @@ -695,7 +698,8 @@ public void it_inserts_call_mocks_without_commas_correctly() throws IOException " display \"Call not mocked in testcase \" UT-TEST-CASE-NAME \" in " + Constants.NEWLINE + " - \" testsuite \" UT-TEST-SUITE-NAME " + Constants.NEWLINE + " display \"All used calls should be mocked, to ensure the unit " + Constants.NEWLINE + - " - \"test has control over input data\". " + Constants.NEWLINE + + " - \"test has control over input data\" " + Constants.NEWLINE + + " . " + Constants.NEWLINE + " " + Constants.NEWLINE + " UT-INITIALIZE-MOCK-COUNT. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + @@ -835,7 +839,6 @@ public void it_inserts_call_mocks_without_commas_correctly() throws IOException " ALSO \"Simply a test\" " + Constants.NEWLINE + " PERFORM UT-1-2-3-MOCK " + Constants.NEWLINE + " WHEN OTHER " + Constants.NEWLINE + - " PERFORM PROCESS-UNMOCK-CALL " + Constants.NEWLINE + " PERFORM UT-1-2-2-WO " + Constants.NEWLINE + " END-EVALUATE " + Constants.NEWLINE + " . " + Constants.NEWLINE + @@ -849,6 +852,7 @@ public void it_inserts_call_mocks_without_commas_correctly() throws IOException " ***************************************************************** " + Constants.NEWLINE + " MOVE \"Bye\" to VALUE-1 " + Constants.NEWLINE + " * CALL bogus USING VALUE-1 " + Constants.NEWLINE + + " PERFORM PROCESS-UNMOCK-CALL " + Constants.NEWLINE + " " + Constants.NEWLINE + " * CALL 'prog2' USING VALUE-1 " + Constants.NEWLINE + " EVALUATE UT-TEST-SUITE-NAME " + Constants.NEWLINE + From 184dc48065c7c536018ce767277e438e173ff2fb Mon Sep 17 00:00:00 2001 From: "Thomas N. Kramer" Date: Tue, 12 Sep 2023 12:32:06 +0200 Subject: [PATCH 158/180] fix mock of paragraphs Mock were not found in the internal list because of a wrong number of arguments. Now the mocks for both section and paragraph is stored with the right number of arguments Signed-off-by: Thomas N. Kramer --- src/main/cobol/MOCKPARA.CBL | 49 +++++++++++++++++ .../testSuiteParser/TestSuiteParser.java | 3 ++ .../testSuiteParser/TokenTracker.java | 6 +++ src/test/cobol/MOCKPARA/MockParaTest.cut | 52 +++++++++++++++++++ 4 files changed, 110 insertions(+) create mode 100644 src/main/cobol/MOCKPARA.CBL create mode 100644 src/test/cobol/MOCKPARA/MockParaTest.cut diff --git a/src/main/cobol/MOCKPARA.CBL b/src/main/cobol/MOCKPARA.CBL new file mode 100644 index 00000000..1518e5ed --- /dev/null +++ b/src/main/cobol/MOCKPARA.CBL @@ -0,0 +1,49 @@ + IDENTIFICATION DIVISION. + PROGRAM-ID. MOCKPARA. + /**************************************************************** + * Program to exercise mock of paragraphs + ***************************************************************** + ENVIRONMENT DIVISION. + INPUT-OUTPUT SECTION. + FILE-CONTROL. + DATA DIVISION. + WORKING-STORAGE SECTION. + 01 FILLER. + 03 NUMERIC-FIELDS. + 05 NUMERIC-1 PIC s9(4) comp. + 05 NUMERIC-2 PIC s9(4) comp. + 05 NUMERIC-3 PIC s9(9) comp. + 03 TEXT-FIELDS. + 05 TEXT-1 PIC X(12). + 05 TEXT-2 PIC X(12). + 05 TEXT-3 PIC X(12). + + PROCEDURE DIVISION. + + *----------------------------------------------------------------- + 100-COMPUTE-VALUE SECTION. + *----------------------------------------------------------------- + PERFORM 300-FETCH-CURRENT-NUMERIC + + COMPUTE NUMERIC-3 = NUMERIC-1 - NUMERIC-2 + end-compute + . + + 201-DUMMY SECTION. + CONTINUE + . + + 210-MOVE-TEXT-TO-2 SECTION. + MOVE TEXT-1 to TEXT-2 + . + + 220-MOVE-TEXT-TO-3 SECTION. + MOVE TEXT-1 to TEXT-2 + . + + 300-FETCH-CURRENT-NUMERIC. + move 500 to NUMERIC-2 + . + 310-SKIP-CURRENT-NUMERIC. + CONTINUE + . \ No newline at end of file diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index 8223608d..b01efdff 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -555,6 +555,8 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, case Constants.MOCK_TYPE: expectMockIdentifier = true; + tracker.reset(); + // TODO: REMOVE PARA if (testSuiteToken.equals(Constants.PARA_TOKEN)) { testSuiteToken = Constants.PARAGRAPH_TOKEN; @@ -850,6 +852,7 @@ private void handleEndOfMockStatement(BufferedReader testSuiteReader, String tes // First add any arguments, not yet added to currentMock if (tracker.summizedTokensForArgument != Constants.EMPTY_STRING) { //We have something to add to the Mock + System.out.println("#debug#-(handleEndOfMockStatement)" + tracker.toString()); currentMock.addArgument(getCallArgument(tracker.parseDataUsingForSummizedTokens, tracker.summizedTokensForArgument)); tracker.reset(); } diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TokenTracker.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TokenTracker.java index d8727845..d899362c 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TokenTracker.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TokenTracker.java @@ -18,4 +18,10 @@ public void reset() { this.summizedTokensForArgument = Constants.EMPTY_STRING; this.parseDataUsingForSummizedTokens = Constants.EMPTY_STRING; } + + public String toString() { + return "TokenTracker: summizedTokensForArgument: '" + summizedTokensForArgument + + "', parseDataUsingForSummizedTokens: '" + parseDataUsingForSummizedTokens + + "', lastAddedTokenToArgumentIsQualifier: '" + lastAddedTokenToArgumentIsQualifier + "'"; + } } diff --git a/src/test/cobol/MOCKPARA/MockParaTest.cut b/src/test/cobol/MOCKPARA/MockParaTest.cut new file mode 100644 index 00000000..d67df713 --- /dev/null +++ b/src/test/cobol/MOCKPARA/MockParaTest.cut @@ -0,0 +1,52 @@ +TESTSUITE 'DETERMINE AGE FROM CPR NUMBER.' + +*> one global mock on a paragraph +MOCK PARA 310-SKIP-CURRENT-NUMERIC + MOVE 66 TO NUMERIC-3 in NUMERIC-fields +END-MOCK + +*> one global mock on a section +MOCK SECTION 220-MOVE-TEXT-TO-3 + MOVE 'mocked move' TO TEXT-3 +END-MOCK + +TESTCASE 'not mocked section' +MOVE '12345678901' TO TEXT-1 +PERFORM 210-MOVE-TEXT-TO-2 +EXPECT TEXT-2 IN TEXT-FIELDS TO BE '12345678901' + +TESTCASE 'locally mocked section' +*> local mock of a section +MOCK SECTION 210-MOVE-TEXT-TO-2 + MOVE 'Got mocked' to text-2 +END-MOCK + +MOVE '010100-0001' TO TEXT-1 +PERFORM 210-MOVE-TEXT-TO-2 +EXPECT TEXT-2 IN TEXT-FIELDS to be 'Got mocked' + +TESTCASE 'not mocked paragraph' +MOVE 200 TO NUMERIC-1 +PERFORM 100-compute-value +EXPECT NUMERIC-3 in NUMERIC-fields TO BE numeric -300 + +TESTCASE 'locally mocked paragraph' +*> local mock of a paragraph +MOCK PARA 300-FETCH-CURRENT-NUMERIC + MOVE 15 TO NUMERIC-2 in NUMERIC-fields +END-MOCK + +MOVE 20 TO NUMERIC-1 +PERFORM 100-compute-value +EXPECT NUMERIC-3 in NUMERIC-fields TO BE numeric 5 + +TESTCASE 'global mocked section' +move "test this" to text-1 +perform 220-MOVE-TEXT-TO-3 +expect TEXT-3 in text-fields to be 'mocked move' + +TESTCASE 'global mocked paragraph' +move "" to text-1 +perform 310-SKIP-CURRENT-NUMERIC +expect NUMERIC-3 in NUMERIC-fields to be NUMERIC 66 + . From 9eeaa4f99019e7655e5aaece35ecf98eed5bf113 Mon Sep 17 00:00:00 2001 From: Akash Kumar Date: Tue, 12 Sep 2023 16:02:32 +0530 Subject: [PATCH 159/180] fix minor bug Signed-off-by: Akash Kumar --- .../TestSuiteParserController.java | 3 ++- .../cobolcheck/ExpanderTest.java | 24 ++++++++++++------- .../cobolcheck/MockIT.java | 12 ++++++---- 3 files changed, 26 insertions(+), 13 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParserController.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParserController.java index cfd6d30a..dd673647 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParserController.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParserController.java @@ -249,7 +249,8 @@ public List generateCobolLinesForUnmockedCalls() { cobolLines.add(String.format(line2, testCodePrefix)); cobolLines.add(line3); } - cobolLines.add(" ."); + cobolLines.add(" CONTINUE"); + cobolLines.add(" ."); cobolLines.add(""); return cobolLines; } diff --git a/src/test/java/org/openmainframeproject/cobolcheck/ExpanderTest.java b/src/test/java/org/openmainframeproject/cobolcheck/ExpanderTest.java index 83ae2842..0d356fae 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/ExpanderTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/ExpanderTest.java @@ -311,7 +311,8 @@ public void it_inserts_code_correctly_when_there_are_some_unmock_calls_and_confi " - \" testsuite \" UT-TEST-SUITE-NAME " + Constants.NEWLINE + " display \"All used calls should be mocked, to ensure the unit " + Constants.NEWLINE + " - \"test has control over input data\" " + Constants.NEWLINE + - " . " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + + " . " + Constants.NEWLINE + " " + Constants.NEWLINE + " UT-INITIALIZE-MOCK-COUNT. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + @@ -353,7 +354,8 @@ public void it_inserts_code_correctly_when_there_are_some_unmock_calls_and_confi " - \" testsuite \" UT-TEST-SUITE-NAME " + Constants.NEWLINE + " display \"All used calls should be mocked, to ensure the unit " + Constants.NEWLINE + " - \"test has control over input data\" " + Constants.NEWLINE + - " . " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + + " . " + Constants.NEWLINE + " " + Constants.NEWLINE + " UT-INITIALIZE-MOCK-COUNT. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + @@ -399,7 +401,8 @@ public void it_inserts_code_correctly_when_there_are_some_unmock_calls_and_confi " - \" testsuite \" UT-TEST-SUITE-NAME " + Constants.NEWLINE + " display \"All used calls should be mocked, to ensure the unit " + Constants.NEWLINE + " - \"test has control over input data\" " + Constants.NEWLINE + - " . " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + + " . " + Constants.NEWLINE + " " + Constants.NEWLINE + " UT-INITIALIZE-MOCK-COUNT. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + @@ -444,7 +447,8 @@ public void it_inserts_code_correctly_when_there_are_some_unmock_calls_and_confi " - \" testsuite \" UT-TEST-SUITE-NAME " + Constants.NEWLINE + " display \"All used calls should be mocked, to ensure the unit " + Constants.NEWLINE + " - \"test has control over input data\" " + Constants.NEWLINE + - " . " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + + " . " + Constants.NEWLINE + " " + Constants.NEWLINE + " UT-INITIALIZE-MOCK-COUNT. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + @@ -489,7 +493,8 @@ public void it_inserts_code_correctly_when_there_are_some_unmock_calls_and_confi " - \" testsuite \" UT-TEST-SUITE-NAME " + Constants.NEWLINE + " display \"All used calls should be mocked, to ensure the unit " + Constants.NEWLINE + " - \"test has control over input data\" " + Constants.NEWLINE + - " . " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + + " . " + Constants.NEWLINE + " " + Constants.NEWLINE + " UT-INITIALIZE-MOCK-COUNT. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + @@ -538,7 +543,8 @@ public void it_inserts_code_correctly_when_there_are_some_unmock_calls_and_confi " - \" testsuite \" UT-TEST-SUITE-NAME " + Constants.NEWLINE + " display \"All used calls should be mocked, to ensure the unit " + Constants.NEWLINE + " - \"test has control over input data\" " + Constants.NEWLINE + - " . " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + + " . " + Constants.NEWLINE + " " + Constants.NEWLINE + " UT-INITIALIZE-MOCK-COUNT. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + @@ -593,7 +599,8 @@ public void it_inserts_code_correctly_when_there_are_some_unmock_calls_and_confi " . " + Constants.NEWLINE + " " + Constants.NEWLINE + " PROCESS-UNMOCK-CALL. " + Constants.NEWLINE + - " . " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + + " . " + Constants.NEWLINE + " " + Constants.NEWLINE + " UT-INITIALIZE-MOCK-COUNT. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + @@ -647,7 +654,8 @@ public void it_inserts_code_correctly_when_there_are_some_unmock_calls_and_confi " . " + Constants.NEWLINE + " " + Constants.NEWLINE + " PROCESS-UNMOCK-CALL. " + Constants.NEWLINE + - " . " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + + " . " + Constants.NEWLINE + " " + Constants.NEWLINE + " UT-INITIALIZE-MOCK-COUNT. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + diff --git a/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java b/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java index 22a30904..1b4213d5 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java @@ -292,7 +292,8 @@ public void it_inserts_call_mocks_without_commas_correctly() throws IOException " - \" testsuite \" UT-TEST-SUITE-NAME " + Constants.NEWLINE + " display \"All used calls should be mocked, to ensure the unit " + Constants.NEWLINE + " - \"test has control over input data\" " + Constants.NEWLINE + - " . " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + + " . " + Constants.NEWLINE + " " + Constants.NEWLINE + " UT-INITIALIZE-MOCK-COUNT. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + @@ -418,7 +419,8 @@ public void it_inserts_call_mocks_without_commas_correctly() throws IOException " - \" testsuite \" UT-TEST-SUITE-NAME " + Constants.NEWLINE + " display \"All used calls should be mocked, to ensure the unit " + Constants.NEWLINE + " - \"test has control over input data\" " + Constants.NEWLINE + - " . " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + + " . " + Constants.NEWLINE + " " + Constants.NEWLINE + " UT-INITIALIZE-MOCK-COUNT. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + @@ -602,7 +604,8 @@ public void it_inserts_call_mocks_without_commas_correctly() throws IOException " - \" testsuite \" UT-TEST-SUITE-NAME " + Constants.NEWLINE + " display \"All used calls should be mocked, to ensure the unit " + Constants.NEWLINE + " - \"test has control over input data\" " + Constants.NEWLINE + - " . " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + + " . " + Constants.NEWLINE + " " + Constants.NEWLINE + " UT-INITIALIZE-MOCK-COUNT. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + @@ -699,7 +702,8 @@ public void it_inserts_call_mocks_without_commas_correctly() throws IOException " - \" testsuite \" UT-TEST-SUITE-NAME " + Constants.NEWLINE + " display \"All used calls should be mocked, to ensure the unit " + Constants.NEWLINE + " - \"test has control over input data\" " + Constants.NEWLINE + - " . " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + + " . " + Constants.NEWLINE + " " + Constants.NEWLINE + " UT-INITIALIZE-MOCK-COUNT. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + From 7ad3053fd51302285d11a37daf6801b78a632160 Mon Sep 17 00:00:00 2001 From: Akash Kumar Date: Tue, 12 Sep 2023 16:09:13 +0530 Subject: [PATCH 160/180] change default value of cobolcheck.test.unmockcall.display Signed-off-by: Akash Kumar --- config.properties | 2 +- .../openmainframeproject/cobolcheck/services/Config.java | 2 +- testconfig.properties | 7 +++++++ 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/config.properties b/config.properties index ce67cb50..6fbb2647 100644 --- a/config.properties +++ b/config.properties @@ -68,7 +68,7 @@ cobolcheck.test.program.name = CC##99.CBL # will contain the number of unmocked calls. # Default: true #--------------------------------------------------------------------------------------------------------------------- -cobolcheck.test.unmockcall.display = true +cobolcheck.test.unmockcall.display = false #--------------------------------------------------------------------------------------------------------------------- # Path for the generated testsuite parse error log diff --git a/src/main/java/org/openmainframeproject/cobolcheck/services/Config.java b/src/main/java/org/openmainframeproject/cobolcheck/services/Config.java index a5575621..3a2cffe1 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/services/Config.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/services/Config.java @@ -342,7 +342,7 @@ public static List getGnuCOBOLCompileOptions() { } public static Boolean getDisplayUnMockedCalls() { - String value = settings.getProperty(DISPLAY_TESTS_WITH_UNMOCK_CALLS_CONFIG_KEY, "true"); + String value = settings.getProperty(DISPLAY_TESTS_WITH_UNMOCK_CALLS_CONFIG_KEY, "false"); return Boolean.parseBoolean(value.trim()); } diff --git a/testconfig.properties b/testconfig.properties index f2d15909..5fcad382 100644 --- a/testconfig.properties +++ b/testconfig.properties @@ -39,6 +39,13 @@ cobolcheck.decimalPointIsComma = false #--------------------------------------------------------------------------------------------------------------------- cobolcheck.test.program.name = CC##99.CBL +#--------------------------------------------------------------------------------------------------------------------- +# If the given value is true, then the test with unmocked calls will be echoed and test summary +# will contain the number of unmocked calls. +# Default: true +#--------------------------------------------------------------------------------------------------------------------- +cobolcheck.test.unmockcall.display = true + #--------------------------------------------------------------------------------------------------------------------- # Path for the generated testsuite parse error log # Default: ./ From f8933b4131d8f3a8148fdf55239aeced86b48cd0 Mon Sep 17 00:00:00 2001 From: "Thomas N. Kramer" Date: Tue, 12 Sep 2023 13:24:55 +0200 Subject: [PATCH 161/180] fix mock of paragraphs Removed System.out Signed-off-by: Thomas N. Kramer --- .../cobolcheck/features/testSuiteParser/TestSuiteParser.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index b01efdff..c5158291 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -852,7 +852,6 @@ private void handleEndOfMockStatement(BufferedReader testSuiteReader, String tes // First add any arguments, not yet added to currentMock if (tracker.summizedTokensForArgument != Constants.EMPTY_STRING) { //We have something to add to the Mock - System.out.println("#debug#-(handleEndOfMockStatement)" + tracker.toString()); currentMock.addArgument(getCallArgument(tracker.parseDataUsingForSummizedTokens, tracker.summizedTokensForArgument)); tracker.reset(); } From 4de7d13e5f989dee1f6ddbaccc6aad0bc4715cac Mon Sep 17 00:00:00 2001 From: Simon Sobisch Date: Mon, 18 Sep 2023 22:20:58 +0200 Subject: [PATCH 162/180] vscode extension: update metadata * license per distributed file * repo URL and issue-tracker Signed-off-by: Simon Sobisch --- vs code extension/package.json | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/vs code extension/package.json b/vs code extension/package.json index c75bbf46..e0ca1c91 100644 --- a/vs code extension/package.json +++ b/vs code extension/package.json @@ -10,6 +10,14 @@ "description": "Extension for running unit tests in Cobol", "version": "0.4.1", "icon": "images/cobol-check-logo-small.png", + "repository": { + "type": "git", + "url": "https://github.com/openmainframeproject/cobol-check" + }, + "bugs": { + "url": "https://github.com/openmainframeproject/cobol-check/issues", + }, + "license": "MIT", "engines": { "vscode": "^1.46.0" }, From 6c84461888cc525fe7dc73ff7294490454ef1ffd Mon Sep 17 00:00:00 2001 From: Simon Sobisch Date: Mon, 18 Sep 2023 22:37:02 +0200 Subject: [PATCH 163/180] vscode extension: updates to calling external processes * cobc: let the compiler execute the test binary * cobol-check: use whatever version is in bin --- vs code extension/Cobol-check/cobolcheck | 2 +- vs code extension/Cobol-check/cobolcheck.cmd | 2 +- .../Cobol-check/scripts/linux_gnucobol_run_tests | 9 ++++----- .../scripts/windows_gnucobol_run_tests.cmd | 13 +++++++------ 4 files changed, 13 insertions(+), 13 deletions(-) diff --git a/vs code extension/Cobol-check/cobolcheck b/vs code extension/Cobol-check/cobolcheck index cd6ad716..79150c5d 100644 --- a/vs code extension/Cobol-check/cobolcheck +++ b/vs code extension/Cobol-check/cobolcheck @@ -1,2 +1,2 @@ #!/bin/sh -java -jar bin/cobol-check-0.1.0.jar $@ \ No newline at end of file +java -jar bin/cobol-check-*.jar $@ \ No newline at end of file diff --git a/vs code extension/Cobol-check/cobolcheck.cmd b/vs code extension/Cobol-check/cobolcheck.cmd index 3cd4c638..06fd86b5 100644 --- a/vs code extension/Cobol-check/cobolcheck.cmd +++ b/vs code extension/Cobol-check/cobolcheck.cmd @@ -1,2 +1,2 @@ @echo off -java -jar bin\cobol-check-0.1.0.jar %* \ No newline at end of file +java -jar bin\cobol-check-*.jar %* \ No newline at end of file diff --git a/vs code extension/Cobol-check/scripts/linux_gnucobol_run_tests b/vs code extension/Cobol-check/scripts/linux_gnucobol_run_tests index 0dd637d1..35a1ff52 100644 --- a/vs code extension/Cobol-check/scripts/linux_gnucobol_run_tests +++ b/vs code extension/Cobol-check/scripts/linux_gnucobol_run_tests @@ -1,10 +1,9 @@ #!/bin/sh -# Linux - compile and execute a test Cobol program +# Linux / OSX / BSD or similar - compile and execute a test Cobol program # # Assumptions: # -# GnuCOBOL 2.2 or later is installed and on the path. Its executable or alias or symlink is named "cobc". +# GnuCOBOL 2.2 or later is installed and on the path. +# Its executable or alias or symlink is named "cobc". -cobc -x $@ -name=$(echo "$1" | cut -f 1 -d '.') -"${name}" \ No newline at end of file +cobc -xj $@ diff --git a/vs code extension/Cobol-check/scripts/windows_gnucobol_run_tests.cmd b/vs code extension/Cobol-check/scripts/windows_gnucobol_run_tests.cmd index 3bfb01c4..fe2b4240 100644 --- a/vs code extension/Cobol-check/scripts/windows_gnucobol_run_tests.cmd +++ b/vs code extension/Cobol-check/scripts/windows_gnucobol_run_tests.cmd @@ -1,8 +1,9 @@ @echo off -rem Windows - compile and execute a test Cobol program -rem -rem Assumptions: -rem -rem GnuCOBOL 3.+ is installed and on the path. Its executable or alias or symlink is named "cobc". +:: Windows - compile and execute a test Cobol program +:: +:: Assumptions: +:: +:: GnuCOBOL 2.2 or later is installed and on the path. +:: Its executable or alias or symlink is named "cobc". -cobc -x %* && %~n1 \ No newline at end of file +cobc -xj %* && %~n1 \ No newline at end of file From 5f2c60a9274b2a72c59cf84ebfdeebbd90c07b1a Mon Sep 17 00:00:00 2001 From: Lars Egeberg Hansen Date: Wed, 20 Sep 2023 14:08:05 +0200 Subject: [PATCH 164/180] Showing unittests in Testing extension on win fixed --- .../Cobol-check/config.properties | 3 +- vs-code-extension/client/src/extension.ts | 33 ++++++++++--------- .../client/src/services/CobolCheckLauncher.ts | 5 ++- .../client/src/services/TestTree.ts | 5 +-- vs-code-extension/package.json | 2 +- 5 files changed, 27 insertions(+), 21 deletions(-) diff --git a/vs-code-extension/Cobol-check/config.properties b/vs-code-extension/Cobol-check/config.properties index 5347f7b0..7785ca86 100644 --- a/vs-code-extension/Cobol-check/config.properties +++ b/vs-code-extension/Cobol-check/config.properties @@ -173,7 +173,7 @@ concatenated.test.suites = Cobol-check/ALLTESTS # Example: # gnucobol.compile.options = -std=ibm,-fsingle-quote #--------------------------------------------------------------------------------------------------------------------- -gnucobol.compile.options = null +gnucobol.compile.options = -std=ibm,-fsingle-quote,-fnot-reserved=EVENT #--------------------------------------------------------------------------------------------------------------------- # Shell scripts and JCL files for executing your test suites. @@ -195,3 +195,4 @@ zos.process = unix.process = linux_gnucobol_run_tests cobol_run_tests cobol_run_tests + diff --git a/vs-code-extension/client/src/extension.ts b/vs-code-extension/client/src/extension.ts index 1fea14e3..e41a8a91 100644 --- a/vs-code-extension/client/src/extension.ts +++ b/vs-code-extension/client/src/extension.ts @@ -241,10 +241,13 @@ async function createDirectoryItems( controller:vscode.TestController, uri: vsco // Create TestFile for each directory var isInsideTestSuite: boolean = await getIsInsideTestSuiteDirectory1(uri.fsPath) - // const dirArr = vscode.workspace.asRelativePath(uri.fsPath).split(getFileSeperatorForOS(currentPlatform)) - const dirArr = vscode.workspace.asRelativePath(uri.fsPath).split("/") - const rootDir = uri.fsPath.replace(vscode.workspace.asRelativePath(uri.fsPath),"") - const rootUri = rootDir+dirArr[0] + const directory = vscode.workspace.asRelativePath(uri.fsPath) + let splitChar = '/' + if(!directory.includes(splitChar)) + splitChar = '\\' + const dirArr = directory.split(splitChar); + const rootDir = vscode.workspace.getWorkspaceFolder(uri).uri.fsPath; + const rootUri = rootDir + '/' + dirArr[0] let tmpUri = vscode.Uri.file(rootUri); var file :vscode.TestItem = null; @@ -272,8 +275,7 @@ async function createDirectoryItems( controller:vscode.TestController, uri: vsco var tmpData = null for(var i =1;i Date: Thu, 21 Sep 2023 12:28:20 +0200 Subject: [PATCH 165/180] Cobol Check icon removed from viewContainer --- vs-code-extension/client/src/extension.ts | 5 - .../client/src/services/ResultWebView.ts | 96 ------------------- vs-code-extension/package.json | 21 +--- 3 files changed, 1 insertion(+), 121 deletions(-) delete mode 100644 vs-code-extension/client/src/services/ResultWebView.ts diff --git a/vs-code-extension/client/src/extension.ts b/vs-code-extension/client/src/extension.ts index e41a8a91..ff7e9226 100644 --- a/vs-code-extension/client/src/extension.ts +++ b/vs-code-extension/client/src/extension.ts @@ -12,7 +12,6 @@ import { getConfigurationMap, getConfigurationValueFor, resetConfigurations, set import { appendPath, getCobolCheckRunArgumentsBasedOnCurrentFile, getCobolProgramPathForGivenContext, getCurrentProgramName, getFileName, getTextFromFile, getRootFolder, getSourceFolderContextPath, runCobolCheck, getIsInsideTestSuiteDirectory1, getOS, getFileSeperatorForOS } from './services/CobolCheckLauncher'; import { startCutLanguageClientServer, stopCutLanguageClientServer } from './services/cutLanguageClientServerSetup'; -import { ResultWebView } from './services/ResultWebView'; import { handleCobolCheckOut } from './Helpers/ExtensionHelper'; import path = require('path'); import { getContentFromFilesystem, MarkdownTestData, TestCase, testData, TestFile, TestHeading } from "./services/TestTree"; @@ -28,15 +27,11 @@ let currentPlatform = getOS(); export async function activate(context: ExtensionContext) { startCutLanguageClientServer(context); - const provider = new ResultWebView(context.extensionUri); const ctrl = vscode.tests.createTestController('CobolCheckController', 'Cobol Check'); context.subscriptions.push(ctrl); const fileChangedEmitter = new vscode.EventEmitter(); - context.subscriptions.push( - vscode.window.registerWebviewViewProvider(ResultWebView.viewType, provider)); - let runCobolCheck_Cmd = vscode.commands.registerCommand('cobolcheck.run', () => { //Setting loader vscode.window.withProgress({location: vscode.ProgressLocation.Notification, cancellable: true, title: 'Cobol Check running:'}, diff --git a/vs-code-extension/client/src/services/ResultWebView.ts b/vs-code-extension/client/src/services/ResultWebView.ts deleted file mode 100644 index ffb23106..00000000 --- a/vs-code-extension/client/src/services/ResultWebView.ts +++ /dev/null @@ -1,96 +0,0 @@ -import * as vscode from 'vscode'; - -export class ResultWebView implements vscode.WebviewViewProvider { - - public static readonly viewType = 'cobolcheck-result'; - - private _view?: vscode.WebviewView; - - constructor( - private readonly _extensionUri: vscode.Uri, - ) { } - - public resolveWebviewView( - webviewView: vscode.WebviewView, - context: vscode.WebviewViewResolveContext, - _token: vscode.CancellationToken, - ) { - this._view = webviewView; - - webviewView.webview.options = { - // Allow scripts in the webview - enableScripts: true, - - localResourceRoots: [ - this._extensionUri - ] - }; - - webviewView.webview.html = this._getHtmlForWebview(webviewView.webview); - - webviewView.webview.onDidReceiveMessage( async data => { - switch (data.type) { - case 'command': - { - let success = await vscode.commands.executeCommand(data.value); - break; - } - } - }); - } - - public showTestResult(testResult : string) { - if (this._view) { - this._view.show?.(true); // `show` is not implemented in 1.49 but is for 1.50 insiders - let splittedString = testResult.split("================================================="); - if (splittedString.length > 0) - this._view.webview.postMessage({ type: 'test-result', value: splittedString[0] }); - } - } - - private _getHtmlForWebview(webview: vscode.Webview) { - // Get the local path to main script run in the webview, then convert it to a uri we can use in the webview. - const scriptUri = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionUri, 'media', 'main.js')); - - // Do the same for the stylesheet. - const styleResetUri = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionUri, 'media', 'reset.css')); - const styleVSCodeUri = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionUri, 'media', 'vscode.css')); - const styleMainUri = webview.asWebviewUri(vscode.Uri.joinPath(this._extensionUri, 'media', 'main.css')); - - // Use a nonce to only allow a specific script to be run. - const nonce = this.getNonce(); - - return ` - - - - - - - - - - - Result - - -
    -
- - - - `; - } - - private getNonce() { - let text = ''; - const possible = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; - for (let i = 0; i < 32; i++) { - text += possible.charAt(Math.floor(Math.random() * possible.length)); - } - return text; - } -} \ No newline at end of file diff --git a/vs-code-extension/package.json b/vs-code-extension/package.json index 4db144af..08d65c20 100644 --- a/vs-code-extension/package.json +++ b/vs-code-extension/package.json @@ -18,26 +18,7 @@ ], "main": "./client/out/extension", "contributes": { - "viewsContainers": { - "activitybar": [ - { - "id": "cobol-check", - "title": "Cobol Check", - "icon": "images/cobol-check-logo-white-small.png" - } - ] - }, - "views": { - "cobol-check": [ - { - "type": "webview", - "id": "cobolcheck-result", - "name": "Results" - } - ] - }, - "languages": [ - { + "languages": [ { "id": "cut", "aliases": [ "COBOL unit test", From 5dcda56348c62f9d5a2400f622454b1420fc5384 Mon Sep 17 00:00:00 2001 From: Lars Egeberg Hansen Date: Thu, 21 Sep 2023 13:25:58 +0200 Subject: [PATCH 166/180] Rename vs-code-extension folder in build.gradle --- build.gradle | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/build.gradle b/build.gradle index c9d8fc82..163f3200 100644 --- a/build.gradle +++ b/build.gradle @@ -148,7 +148,7 @@ task copyJarToBin(type: Copy) { } task clearExtensionJar(type: Delete) { - delete fileTree(dir:'vs code extension/Cobol-check/bin', include: '**.jar') + delete fileTree(dir:'vs-code-extension/Cobol-check/bin', include: '**.jar') } task copyJarToExtension(type: Copy) { @@ -156,7 +156,7 @@ task copyJarToExtension(type: Copy) { dependsOn clearExtensionJar, fatJar from('build/libs/') include '**/*.jar' - into 'vs code extension/Cobol-check/bin/' + into 'vs-code-extension/Cobol-check/bin/' } From b07c3341fc29ce9c14975aa7634b324b65bdeaff Mon Sep 17 00:00:00 2001 From: Lars Egeberg Hansen Date: Mon, 25 Sep 2023 09:53:08 +0200 Subject: [PATCH 167/180] Cleanup and ready for merge with Developer branch --- .github/workflows/DeployExtension.yml | 6 +++--- .github/workflows/VSCodeBuild.yml | 2 +- vs-code-extension/CHANGELOG.md | 4 ++++ 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/.github/workflows/DeployExtension.yml b/.github/workflows/DeployExtension.yml index 9b235f08..427bc67d 100644 --- a/.github/workflows/DeployExtension.yml +++ b/.github/workflows/DeployExtension.yml @@ -3,7 +3,7 @@ on: branches: - 'main' paths: - - 'vs code extension/**' + - 'vs-code-extension/**' name: Deploy Extension jobs: @@ -11,7 +11,7 @@ jobs: runs-on: ubuntu-latest defaults: run: - working-directory: ./vs code extension + working-directory: ./vs-code-extension environment: production steps: - uses: actions/checkout@v2 @@ -24,4 +24,4 @@ jobs: with: pat: ${{ secrets.VS_CODE_EXTENTION_SECRET }} registryUrl: https://marketplace.visualstudio.com - packagePath: ./vs code extension \ No newline at end of file + packagePath: ./vs-code-extension \ No newline at end of file diff --git a/.github/workflows/VSCodeBuild.yml b/.github/workflows/VSCodeBuild.yml index 0e0b4f59..e42cfe8c 100644 --- a/.github/workflows/VSCodeBuild.yml +++ b/.github/workflows/VSCodeBuild.yml @@ -14,7 +14,7 @@ jobs: runs-on: ubuntu-latest defaults: run: - working-directory: ./vs code extension + working-directory: ./vs-code-extension environment: production steps: - uses: actions/checkout@v2 diff --git a/vs-code-extension/CHANGELOG.md b/vs-code-extension/CHANGELOG.md index 92004153..ec5bccb0 100644 --- a/vs-code-extension/CHANGELOG.md +++ b/vs-code-extension/CHANGELOG.md @@ -1,6 +1,10 @@ # Change Log All notable changes to the "cobol-unit-test" extension will be documented in this file. Versioning according to SemVer: https://semver.org/ +## [0.4.2] 21.09.2023 +- Using VScode build in Testing control framwork +- Removed Cobol Check view in view container + ## [0.4.1] 16.05.2023 - Now using COBOL Check version 0.2.8 From f2014ef4330fff3e5db79471803506ba8100e098 Mon Sep 17 00:00:00 2001 From: Lars Egeberg Hansen Date: Wed, 11 Oct 2023 16:19:44 +0200 Subject: [PATCH 168/180] Changes to fulfil comments from Rune --- .gitignore | 7 +- build/distributions/cobol-check-0.2.8.zip | Bin 218127 -> 218292 bytes .../Cobol-check/output/testResults.html | 278 ------------------ .../client/src/Helpers/ExtensionHelper.ts | 2 +- vs-code-extension/client/src/extension.ts | 15 +- .../src/services/CobolCheckInputParser.ts | 1 - 6 files changed, 14 insertions(+), 289 deletions(-) delete mode 100755 vs-code-extension/Cobol-check/output/testResults.html diff --git a/.gitignore b/.gitignore index f061ef97..e0514848 100644 --- a/.gitignore +++ b/.gitignore @@ -33,6 +33,8 @@ vs code extension/**/node_modules vs code extension/**/client/server vs code extension/**/.vscode-test vs code extension/**/Jenkinsfile +vs code extension/Cobol-check/output/testResults.html +# Below is made bu ./gradlew prepareDistribution!vs code extension/Cobol-check/bin/* vs-code-extension/**/package-lock.json vs-code-extension/**/out @@ -40,7 +42,9 @@ vs-code-extension/**/node_modules vs-code-extension/**/client/server vs-code-extension/**/.vscode-test vs-code-extension/**/Jenkinsfile - +vs-code-extension/Cobol-check/output/testResults.html +# Below is made bu ./gradlew prepareDistribution +!vs-code-extension/Cobol-check/bin/* # Java-related gitignore entries from: https://gist.github.com/dedunumax/54e82214715e35439227 ############################## @@ -73,7 +77,6 @@ buildNumber.properties ## Gradle ############################## bin/* -!vs code extension/Cobol-check/bin/* build/* !build/distributions/ .gradle diff --git a/build/distributions/cobol-check-0.2.8.zip b/build/distributions/cobol-check-0.2.8.zip index 84e0150ef5f722a3cbc770d5758618e5f9032160..97b1469579d512ba28215f5d5332f9e61067adb9 100644 GIT binary patch delta 192231 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 j2 - - - - - - - -

Test report for ALPHA

-Run from: 2023/08/25 17:24:48 - - - - - - - - - - - - - -
Suites (1)Tests (15)
1 passed15 passed
0 failed0 failed
-
- - - - - - - - -
Equality with an alphanumeric literal using TO BEpassed
-
null
-
-
- - - - - - - - -
Equality with an alphanumeric literal using TO EQUALpassed
-
null
-
-
- - - - - - - - -
Equality with an alphanumeric literal using '='passed
-
null
-
-
- - - - - - - - -
Equality with an alphanumeric literal and reference modificationpassed
-
null
-
-
- - - - - - - - -
Non-equality with an alphanumeric literal using TO BEpassed
-
null
-
-
- - - - - - - - -
Non-equality with an alphanumeric literal using TO EQUALpassed
-
null
-
-
- - - - - - - - -
Non-equality with an alphanumeric literal using '!='passed
-
null
-
-
- - - - - - - - -
Non-equality with an alphanumeric literal and reference modificationpassed
-
null
-
-
- - - - - - - - -
Greater-than sign with an alphanumeric literalpassed
-
null
-
-
- - - - - - - - -
Less-than sign with an alphanumeric literalpassed
-
null
-
-
- - - - - - - - -
Not greater-than sign with an alphanumeric literalpassed
-
null
-
-
- - - - - - - - -
Not less-than sign with an alphanumeric literalpassed
-
null
-
-
- - - - - - - - -
Display numericpassed
-
null
-
-
- - - - - - - - -
Variable must be SPACEpassed
-
null
-
-
- - - - - - - - -
Variable must be SPACESpassed
-
null
-
-
- - \ No newline at end of file diff --git a/vs-code-extension/client/src/Helpers/ExtensionHelper.ts b/vs-code-extension/client/src/Helpers/ExtensionHelper.ts index 416f3af5..7f23e06a 100644 --- a/vs-code-extension/client/src/Helpers/ExtensionHelper.ts +++ b/vs-code-extension/client/src/Helpers/ExtensionHelper.ts @@ -23,7 +23,7 @@ export async function handleCobolCheckOut(output : CobParser.CobolCheckOutputPar break; case CobParser.OutputState.TestFailed: - console.log("TEST FAILES") + console.log("TEST FAILED") testResultFile = appendPath(vsCodeInstallDir, await getConfigurationValueFor(configPath, 'test.results.file')); htmlResult = await getTextFromFile(testResultFile + '.html'); showWebWiev('Test Results - ' + getCurrentProgramName(), htmlResult) diff --git a/vs-code-extension/client/src/extension.ts b/vs-code-extension/client/src/extension.ts index ff7e9226..feb44c84 100644 --- a/vs-code-extension/client/src/extension.ts +++ b/vs-code-extension/client/src/extension.ts @@ -273,7 +273,14 @@ async function createDirectoryItems( controller:vscode.TestController, uri: vsco tmpDir = tmpDir + '/' + dirArr[i] const existing = prevFile.children.get(tmpDir); - if(!existing){ + if(existing){ + const tmpData = testData.get(existing) + if(tmpData instanceof TestFile && tmpData.getIsTestSuiteDirectory()){ + isInsideTestSuite=false + } + prevFile = existing; + } + else{ tmpUri = vscode.Uri.file(tmpDir); tmpFile = controller.createTestItem(tmpDir, dirArr[i], tmpUri); tmpData = new TestFile(); @@ -292,12 +299,6 @@ async function createDirectoryItems( controller:vscode.TestController, uri: vsco } } prevFile=tmpFile; - }else{ - const tmpData = testData.get(existing) - if(tmpData instanceof TestFile && tmpData.getIsTestSuiteDirectory()){ - isInsideTestSuite=false - } - prevFile = existing; } } return {tmpFile,tmpData}; diff --git a/vs-code-extension/client/src/services/CobolCheckInputParser.ts b/vs-code-extension/client/src/services/CobolCheckInputParser.ts index 27311aa9..6b76d5a6 100644 --- a/vs-code-extension/client/src/services/CobolCheckInputParser.ts +++ b/vs-code-extension/client/src/services/CobolCheckInputParser.ts @@ -1,7 +1,6 @@ import * as vscode from 'vscode'; const testCaseRegex = /^\s*(TESTCASE)\s*(.*)/i; -// const testRegex = /^\s*(Expect)\s*(.*)\s*(not?)\s(>|<|to\s*be)\s*(.*)\s*/i; const testSuiteRegex = /^\s*(TESTSUITE)\s*(.*)/i; export const parseMarkdown = (text: string, events: { From 4d25f65c98227fad4cc0bf41bdd7e6fb263e631c Mon Sep 17 00:00:00 2001 From: Rune Christensen Date: Tue, 17 Oct 2023 08:40:14 +0200 Subject: [PATCH 169/180] Prepare for new version release --- .gitignore | 14 ++--------- CHANGELOG.md | 22 ++++++++++++++---- build/distributions/cobol-check-0.2.8.zip | Bin 218292 -> 228802 bytes vs-code-extension/CHANGELOG.md | 2 +- .../Cobol-check/bin/cobol-check-0.2.8.jar | Bin 0 -> 255319 bytes .../Cobol-check/config.properties | 5 +++- vs-code-extension/package.json | 2 +- 7 files changed, 26 insertions(+), 19 deletions(-) create mode 100644 vs-code-extension/Cobol-check/bin/cobol-check-0.2.8.jar diff --git a/.gitignore b/.gitignore index 0df2f083..3dff902c 100644 --- a/.gitignore +++ b/.gitignore @@ -26,16 +26,6 @@ src/test/cobol/TESTPRG.CBL *.dll *.exe -#Cobol-check VS CODE extension -vs code extension/**/package-lock.json -vs code extension/**/out -vs code extension/**/node_modules -vs code extension/**/client/server -vs code extension/**/.vscode-test -vs code extension/**/Jenkinsfile -vs code extension/Cobol-check/output/testResults.html -# Below is made bu ./gradlew prepareDistribution!vs code extension/Cobol-check/bin/* - vs-code-extension/**/package-lock.json vs-code-extension/**/out vs-code-extension/**/node_modules @@ -43,8 +33,6 @@ vs-code-extension/**/client/server vs-code-extension/**/.vscode-test vs-code-extension/**/Jenkinsfile vs-code-extension/Cobol-check/output/testResults.html -# Below is made bu ./gradlew prepareDistribution -!vs-code-extension/Cobol-check/bin/* # Java-related gitignore entries from: https://gist.github.com/dedunumax/54e82214715e35439227 ############################## @@ -53,6 +41,8 @@ vs-code-extension/Cobol-check/output/testResults.html .mtj.tmp/ *.class *.jar +# Below is made by ./gradlew prepareDistribution +!vs-code-extension/Cobol-check/bin/*.jar *.war *.ear *.nar diff --git a/CHANGELOG.md b/CHANGELOG.md index ce8d91a2..79b93528 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,18 +20,32 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Mock SQL tables - Mock batch file I/O -## \[0.2.8\] 2023-05-16 - Unreleased +## \[0.2.8\] 2023-10-17 ### Implemented - Proper handling of END-EXEC without trailing period in WORKING-STORAGE - -## \[0.2.7\] 2023-03-21 - Unreleased +- Fixed bugs in input argument handling +- Fixed bug with spaces in path +- Added default return code +- Added ability to mock and verify calls without commas separating arguments +- Fixes to the linter +- Greatly improved management of mocked sections +- Added the usage of test tree instead of own test run panel +- Fixed a bug where numeric fields where not properly identified +- Added a warning when a call was attempted and not mocked, and the ability to throw an error instead +- Updated metadata on the extension +- Improved usage of the Gnu COBOL compiler +- Updated the test workflows +- Added expanding of copybooks in exec-sql statements +- And lots of other minor things + +## \[0.2.7\] 2023-03-21 ### Implemented - EXPECT now properly handles variable subscription without a space delimiter (EXPECT varibable(idx) TO BE 1) - COBOL level item 77 now handled properly - More robust scanning of WORKING-STORAGE items - Corrected assignment of the various COBOL computational binary field types. -## \[0.2.6\] 2023-01-12 - Unreleased +## \[0.2.6\] 2023-01-12 ### Implemented - Datastructure-verification for Working Storage has been added. diff --git a/build/distributions/cobol-check-0.2.8.zip b/build/distributions/cobol-check-0.2.8.zip index 97b1469579d512ba28215f5d5332f9e61067adb9..437ed1e62971fd0f4986a5795af6d35ba0d55089 100644 GIT binary patch delta 226813 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≤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

!T!}b?=4!I1wXd)(H#NCcgu~2Rq(%?sg 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 delta 216207 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μoNRX5f5KJV2 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 diff --git a/vs-code-extension/CHANGELOG.md b/vs-code-extension/CHANGELOG.md index ec5bccb0..7f7c5071 100644 --- a/vs-code-extension/CHANGELOG.md +++ b/vs-code-extension/CHANGELOG.md @@ -2,7 +2,7 @@ All notable changes to the "cobol-unit-test" extension will be documented in this file. Versioning according to SemVer: https://semver.org/ ## [0.4.2] 21.09.2023 -- Using VScode build in Testing control framwork +- Using VScode build in Testing control framework - Removed Cobol Check view in view container ## [0.4.1] 16.05.2023 diff --git a/vs-code-extension/Cobol-check/bin/cobol-check-0.2.8.jar b/vs-code-extension/Cobol-check/bin/cobol-check-0.2.8.jar new file mode 100644 index 0000000000000000000000000000000000000000..f1a8123ec8dd6e7665196108d8e0ca7ddb8a8b31 GIT binary patch literal 255319 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

_01Lf++}(0J2g5dJyxIPJTz<*V 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

Bm>!Mxkl9Z;jX^!@bUE=wNm0Q-#o+ywZPEuWi_< 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

PDnvTWBZT@pS)cSY&c)%LaH1!C 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 JD}&y_{|`@PR~Y~R delta 191989 zcmV(%K;pl&sSS^)4GvIC0|W{H00;;G?R>CSkq%M>?R>CSkz`o}?R>CSk-;Dh?R>CS z*2YnNN;U%kQIYN;f4c*8WZSyGosK&0PRF)w+qThB#YV@rZFOv$9ox2T8~^NmaL?Z7 zyEy0GuSU%=QdM)kskNT@>Ni)(N`Qbu0Rcfk0G+y3Dg%8yfPwz*|D_F@|Dg?llRm)O-o(n%?w`)Zm;Le-^Aixz^~X^8*Ubt1_O61JgRMS5 zz{W8>_FU#V1lpm{nXzggvTGy7oJZE}w_v9U!p+$X94?HkWl`4|S3eO(6b z^k-&2hd99^VsNI(QA`nIOk#h=6(OsO3gj9m1sK4erY^Y zhbi;Of1j79%JSPHTe767-LZkNosm)QmFQx$)NI_0mSAMaUQ@jxd@uItau->MMRY_9 z^RHa&!OPisX^o%x22~p(KRlQyWWPgcnw{@lSPe4JO!Fc!d8c}^P*%R{*Qg|E8r?{3 z0U^CXdV+q|*ucD)(QWNwVr6p=aM~*OiLz@Ge>B7Vq};TuWvLsE7Prcdo;N4#Y;+Cs zM<87St6HcZFjhZ?+`j|F!a~>5K+?n#z-MdZU;(hS|1%2N7HJT=ub6>5aQwJmA)%V> zISI?NK!o_=88Hz-^BmK5x2)?4GQV7ED2gJw0pa*BaA<>lL((?k;@Dordb~Y-1nYoz zf3cv?W0Z%7G1fk#@4X-^H&D9vG@Qrlf4U=HaiFP!{Ny>xUfRrIoK0kX8Ho+{!^2H0 zk=a;a9skMrB2z`g`oeY$UIk2H3$?83+szFMzf#^epD0;ScDHLO=53TPkYS?^u^zpsA9-Mp`%;o ztu8LEPKw^YT|R+tz@!r^Pux}Q>T7fyo8)MH*V)HS8~lt$IMu_qV{5T>wki6PyAt7> zap2O#Ek2e4cigsLvb1r$q%i$Ff8bqeZdDNl*fDE#yTi~xzG&2)T4BhRgJ2gJ(9bNV zAb;(Zfe4V+Pyhup?8}Jp_b}#jMhuO&KxcG%9NKIXtcc;uHt2=4%M9W zr#?-4QM#{HG|h?#=s4wZMp@8!YEwfknBM*RTzL5_PR6)4J4BCv7℘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�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�z@*i}dG6^zyx92*oPH=9NA^XjHkOTd+>m{WrL}f!dS6$cn?q| zm;wW)54ZKf*?&TqJ`XoE+AnzgqM<$)vwtMxm!tlGv_2+Byvi?w{>0p(@}`6pP@dZE z!tqfL1f;9(fKj47j|mH$b#Xk;=MoDzr*TVK^zrQOc|wf~I|v=RA^ zbRi%o$`^>>jj`YFQmoy-i6MxK_*k5;44cT&F?SJUQ8)skPK^z!6 zG5H{ix-Vq_O$Ra8uIeK`>W*47g+ePm&%JvNWAd8E*oSo-W=ARUnzvfk>Y_F+ zUlNWpJt2RiyudQ2t82E`ICGOw%;^;e)fOaX@4U#^bg4J&*3oJ=kuhN{x449AQ=_@Z zkN+)z=^N39Vb+J_dw=SYYX3I)lR<-Sn;RWX-SFK4Way?U4HN^KEpIY2G}FLYdJc)b zZGQrL9uVYUy)6lvNarkrZY-vEPk$!nYOR4idnJ^dx!6R`I-T&I#Bd~oHF9yuS{vD- zx$w+6I}xv~B}cDurU{lYmr-oS#$0J$wshPzos`S=6laG@lYeWhbpvw+y3B^NoK@&d zP3FQb3V2ekwSBhS@0sTSxHLTg*i%nQODpn^SCx(D>ApU7m+{|g%bIFppjY>oucWnY zN>YaD>d!pN6z7IgH!p)}fIQ}$Nx$ZpEC#B%7MnM8xNNn0b1va-CC@Ws zcS-7rSiU!wbI-Y36ucSJs1DV7f8QZKF*k3VbD>+k0W$=@3sU~z z97!8t?th3KW?y_X6&>j#@Q=daoxBKqJo@zXEOOFD)EtRl2tKnRt>h1gJ=vqOj?590 zU)qSaM|R0-nkW+g__n0ZAbklwJPy9(QTj(}&>**?Fg^L696r14_JQUtqTI7q+jPl11PJ}H_ zaep^Hs138>o(7VNd;vV8^nB*>P7Riud)>iIhgD45BJg$QM0VO<>E;&@I&Ayhmx$?F z`F0x{A?$e|Ku^E`(57N9pF}-goycX@N)4e`-8u7DU+76-0OM}04Cq-8HqXR#_gyET zzF;)8j@u5l*M^gE)Ff)!ER{u_OWE{{S%2?!NQ*Hp|1|f9CI0C<&o_!Wp=IDf?#W#H zb9?a>FRAa6|NiLyUDYcX-=;66XF#(!;u(y_svoS>H*APl9ia~@qFiy#Se=mXy6Vm} zV<^P9H)opxqpo)3>jt=GAsxuuadSdHutx$G5Pg^_?ba{e(fx-2qk2cB5T};XTYryF z#POg&f&{I^wyhvsAvJ(VE$F2V!iizrZeZTZYLHETEqSh{{I5W9B2_VBB8|a|AeL{$voOn+Yq=Qs zM6tO`KoLX!Ytm+1?Rq1{%_fBEf>%Zgu4AKi&n%xC@4P^{v^g&rXY#JFp9pYiL|Vr| zr5C&|(>jBB(O~Ee;Q%qrv4$vwv=6g1gASAP5IDaUkUfgSFBVr&?)|alb$`8p?TaF| zV^fG16$7NJs$>Q7B#@*>iX_H~PlhB%qW}_Kwd_!Y{YySdr4QUZ`xayLXyusZ&T@Ne z|MT!};=`SVatoys=54O*BCfabY-4{>Cudq!zUUPa8nl4(jPuiKh12O8|Cx?%JjeLB zg=I(`U)(Ck@ZCFz_h_=qHGj-=S!Z24a|y1EMERwIOwUs=Mp+t2V^*nOSQa6B&T2%7 z9U@~{k*;WR6!~X;!W!-0nIj0F`dxaV+!k3;6Jd{ks)rY@G>RWZ+oaE`D-G-+y@iu- zrvwtuAycG?A&LJxOB!`Yh%6KQHx{+oqR%2N2t1P)rnJ4msf3m42Y)cjKgjBO!`XaO z)}!hgROa`$J%QTgm z{}CCT=A7UD|6Re@#X>T&0s{a{g8=|Y{!bK)vWuaMDT$bkq51#eTOuisqKNRjXEO^^ zTQE@20T4tpyL5*gffW*BB9P38)yW$M&cd>re1}I&PX7yr+%AF~i|0Vt1R@(l4*v@e z{|joo;$S=IV}nE3i4Xmx!|aSo+Iu7%=Yd(D9SDc^?$Wo$9~JDc_{NdjrsJ^Gx2pt zGZAtohWl_U6EiWBxje+`Dmx7sg8mw^$xO@1CY8b$IHcEENg-YG5Cqh((Qmpj2r$e+ z{M_}3`9cnX8=2ev83m(^+ zYbrFwC4X64lh%YiBR0L4Hm}{oHhHHCtGd7M&<+?(+HLRIyu25c_ zU&|$DJRl4jCU~2nHV$rO8CLCs&An`v8o3EnH-Ai4idbbBc)hr~Rn;L3s`^8>shIiI z9JW>``|vlTgLc$uMX@_k6G*}n_>Ubvi*Vm*VH!87DhWLaDJZS-N9$|F)-x_qUYejg zoak6(^1_B`Z6M|WN@xr`#J-NODd?gMTU%+>dy)*1^cw(iM;Hgb@|c+Ah!KmT>fGB9 z|9@?H(g6UxQtC*jlv%`l=Avj!I;!y|O<|FI<+<`IVa6PlOM;$X*0`}dW(DoslBoXk zo}$qy#XRKc2cN>#zhEV`5JyN_kU3c{6PYy)QHur&S$Qy>R7fORs09tQUwG4y3znE@ zR8PzW7fZOx8W$DjT~S&t=MWjGc(=O3=YR2f`wYYL5`D6dh^u}vjQwI{`$!_(f-)RZ z5zZW?Vf#Wkasgh&(&A6fHlybsD3d$1iPv+szL*VlCNHT8pYSyDmzLZG?xrb_KH-Au zi$QIOf@q?GJtQISAx~l0y_IpUln5}ZmHJDxpuc`M;vejP$0oE~$fU=AaM=V80DmCz zKgQ<&HW5+Rc0g9e_;qvMw9R6Z-D-hVsG|)NqGYFD(1NgB5?dlMTTTmVx9ze`FU!t? zR#Hrf4hlG^sQ)^Erss<&W*C_Gn2BNL`#y>3`I$H zv_woMLP1m}DifWFP!PpIXQU<~Hj)b=Bce9a8`%bOf-9P3Ry42?9rF%~bkE?RG#Cto zJEM$q$8?H{d}V%$vIx#c&3RY zwjV*7JLB;9XC_~xkfv!Gs5)9wLQ8LT3M0ol-$xpR_aDvBZ}c^#{#1rXF9lDUvibM~#)!8^q97(-R1_*9mkY9a`dJO}Uj&nSVv!*qRbYxhr`AkxZgQL`*DNSvd zN^-cUYj2jx*$CY|G2^Tzg*#qr7`>+MP6E-a($HBg&IH>nkX(yAW8HjNyCtI9Tit%p`mvUBVJTMcPvSIq|k%~Q3_;olPAK24+9fR zDr8b<*DQMwI~IH*E?PDpF?cyb_Nv(U3n7k^UxI#aNAC6E<>WvTLvjD49>sBfM~PFBrzNQ`n7YQpdnS+;yp zcgJ0O*)d^MaCB`9%)709Q4W;D?M`C3E5MA;eGzlMc}v;>*6?juMyDB^(>~z355n&U zosMsC`vs^T_d^Go9o?>IG>{3$F{@aE;ha^-#jIi%rhj8zF$mi+n=lT;npH@~e99^` zV_q=|)0$0~hpA-}uAW`MVqQ^$^t^e?Z*bc=a+Ex7fnMsET_)Ha>XM5uE@@y6t=2JQ zMroB%6yNxgldoMJxQZc-RxU5BZKl(@*c!F$EqqP;$imc*4(y!DO&32!f(gy0#L65Z zj@{;!4S&n*Hd&i!!7H<6nn6RYl{qwyQVkQep6raLl+s9!9JOumm_of{`V#ZjR5|s- zmhtR>8NE`1T~m?Uj)7Q9k+;7d8{)+fB91GB#Ois0VLg^^ zIpETA1n2t+QvJZKegv@1!L{bZUvu1U$m0%x)qg?4<^;{|NVYhqD-Qm~^1DN8bL=@PS=kY{=pOZG#vTRB>8-nc+@|H@CUa1ebfC8r8`?8 zr}65IMfZrwZFgSB|5ZbjTbKRNj8fyxQ-4K4yg)^}MBEFAMp*}?`X+^0F5WKw({Dk% zD_wz8_%7#2D~cto5ufe@yYzV)K@)%m(#jVz=?1uoMjdK>dHlY)=2R-PYdP)XviDzZPP;I2jtd*#Doi zka`~m0iCn3fQkYEgp)giH9Vu27i8Dim$}&&!`YYW+7zCE=5!|$q8}i1W2PM-?*~dd z(|gMsQRfbzdE==bsOpEVItY21VpTrk&+xWzSGP9yUF(Dsf&zO_%b zVA*!nDciPf+qP}vS2j=Cwsp$3?K)-KRrB`r?HjlMcP3(@Z%@Sjkg>l!5j%3_%9T%M z?zHgJ6(W9r8{j(-*u*6wehZ?wJ0vN*gJ=w-MOsnm@YkfUjC~?y?x8CTB!)&LE4%|5 zi~~-@#1*0*dtjzX;SBB}4%#7HM5A-0-PSLj2VT*5ggZajh-BI!9J~Wa zi~}^p2J!IM2Jj&(j6#j@*T^u=L6OIEB!RX-&&aTU(?ueGBO?7{qIcH_10BI^GoqDq zq}~Rk6VHei?x7nx!kH$dFYX}%+97cKLWA(vCh$;0A_&)rUd;$xM5cU^Pd|+atiK^| zVS5B6kZkPyMeMYKcLx7Cwkr>j*B%}Tl+)V zzm?Lqv!)N9#ShY7OWMlH%05<`Soi|IzCQAR9N}ir4RIi0+>I$Gg87t!q?K7Or#zPeqvZ(VR+XiL>K4ej;4%`G<4u$vLi z*PMIx9BaSp_vNF}weN48cFL=G+l3>V=g8=_RWeDkEP)J~hAH<9uyxSUZ!1EpF5=(7 zKw#5>$cab~5)#0RR4DCklEAdM<^bSWAtvf3<3`!U4R6Jay*u`+;tm~P>n2OuN*F(X zTkq>4)7-WF7d><|#4cPcWJD)HX;~lVinBZGI(2Q9taTsYhyNJLlsCy~V{`uU%Pm2t zHr4W0u4BxgPUS#;FWwbT`VDv-(q6NJX%Xs@$~tRn?;1}ncCwYds6wInvTe);HkS7Y z#m7M^Q{DNK-cNt{(-7j$7(8OwngUjT>fbl=DhxQK63K-ihX^> z=XQD_v`KkJfg(FZ2w6eKZVvMJebm^3f)b)g{-I=>A1rHBvFc857E&Zfc?nV@&lp|; zW2Q#zPan*?c5OhQ5X=FJ+1ia^Uo`T8vwZzP4kr(>1$U6!l2ohKZAo8dH| z>9zsh$8ZGjMQScJm6$=%0K@{v|J(MXuZQQe<&PDFkNXb$Wq>Ct%4q&cmue5l>;WoE zY+Z7g0?G;q7K(({=k=gNl=P;5Sr*&cFo0x>xu; zT`17j^wZkZiClk6ggd4cb8nba60|pkQAaC=sZ_ks7f(#<)N4pdk_RP!RTIaQaI#-$ z-fW4w9xL6Kc*YR*_&{W=c<rx2+S5Xfd`WrKDY*8#mjvU5UO@SpqMn4jh zfPjuYEA;i+AUY>9smD6BJ_%{}7m+@Th^ABo!H8hDedrh&kw2?2E{n+DB&4=~-WY|B zQ4skv3wK)q{xR(1gFGjHp_C+rx0r;x?EsXdME>}ocX7yt8KLbqp`7*rN^+uWJ``eb znZzIGCF|#cXL`jVBS+CbAIAfN|M$&NlK%}+zKL@3O0Rd_KH=gr9 z-;gr>0B=B$zmE{5BIB?qi1f|QK+$g{;>DVx0h~-uXcQ!fE2z66N=;g$e<;oM*zCj} z`OAVsdsFBW_!|b3J}?wX_zU=xa;RD=S;jtJd*}Dt$iw~RRNbzCJP_~57csrbpFmz} z@T6L-cBB1D;8nN|`+Y!|9H3&+>qKIwewrd~0aQXR6xYSznT;SiQhjtF8dt$hZ4W+- z!}&c}q5-1-^;R=Unn$i=f0Q>$a$_G^U``j{SMbs`!lGMvA$kMapTNCgHYV@_V(>l> z3vjLRA4^zQ=X-D8xG!0Y9@Q&A^jyuTYe^Xm5vlbHv6xV%IM|7h&f7PZ7~VjY+YLf7|yR^=+%s5 zLw>~3rm-uspSmuXm@7!@nAAR|*FMf|o#M0m%~NMf9tIoxkkG%As(gAC7+wH{JrS+_ z?Vhmz6fir<_`aGUQyUOz@BY<6g=qZXk*xhy?gpsHV=^`9Dfn%ImFJ`{bC%2Cl>o;h z7eK{q(pA*$NlUt{eFHYWdnamN2> zrh)ZDTSotOaBpH+heLvZ0u#c3%CJQ#Oe~#{5pGO0luXdW2UaD|l45RL*RrrcEo^Oh zQrg^5uc=c+D%sGqK`)0Uj9OB!*(h7lzWT7+ZBd9;^_iJ6Z%R0YG(aEN@tOVYbHjDg zdy?&Q-Q>XUe+<>i@p8hc_bDHjy7sD{t zz8lYQ0DSB(H4?HVKx)GA;$wPw^gW4!|7-%&%EGi)W}YDNabHgW`Kfpd#R1vjr8;7= zMUZsM`4aARpz-MmVsLb9v&B2!UDocEnN|032bViNfA~+vR`*&O_7fk z=ebbV@g~RbAFc7=M1y~H?6LL9PtdlHxb>MhE-?P;g0FpxDexV&O8Pk+zr04jf8#IO z{u54Mf79_(78(Fe34hmazdX`xs;mHmw&uNnPzI;dD|mCoRKpJ3a;IFQQx#)%7dKIF zhkX|p24Z48?YXdW@T^Ujwg7&Q+AL%~{^~v*QPcS7ZejySpY4WYli$spD{9?I+m}6G zp)2~+wsI+Lxsu?zGKQYl7^`Vkl-MlgslRp_e_`W3LEJw)>Zi}Dyh&DFN5ep37eiyG z$-Svpg$z+pRX8f5VSetJspaFvk>FiRpNFAJ=vY| zTpN>FV@|tKAn?o!T!7;B7VjL1UrMYa?Dz4a> ze|#R}acfVpa4rh}z2~(mpeY?!QL1t`qXWC`Y*4CH{l0#uC(seDEO-ifc zWUQ6?RJvTU&K`R%ewm3ICc$1=t1nkktG=y0EWhH8n@neNoPi(BXc^HZ40fCr!#ln( zuRBk$fwPR-Duh6_zYEeMCcagl4n-<0f1j9R)WuQCK&wZySHrdm_2d*QuIn)!ZCS&_ zA1=;PIlN+>*6*5m*1`jSe|!5=Q_3Ta-~yF4PNJ|guabX}G9bJ!4V<&I?a6JDqJnpn z4Lvb{Wi%F@4JTrR9b2-orsOLxiDHk+9(RloOdFG(5avDNK&|n6yjaL$0g2+_e<1T$ z1JNXNO^nO@ioSYe{4|ppr&{eop-#5t$qGe#`~c8MAZ2ce*~%t%dcsZX7tAcD7nbcfyCQPfTU$maO|3Bw8nDi zps4OtD2L<^n(l#bd7YJIF=E#51d$7kFl&+mZg8AM@Xy6AY`HXeHOgMUv;!7}_49SnCy=72VYf3?j(fuo^b z#7g)|xb-UM0?*q=7zKDu|4vT5>&TMYN=I_cq#KP30~MoVMewFmc<`j5l&4C+&RVge zA+*?EsCeRTVvW8g&pTtW*HG6+>1@e&UQkysEn8@^o$54UEBb}NoDcsSTlKK zF%YgJU@=*A{Kj;MvW9Nb=*9}Bd z*43#Ltg_}Z zCVL&EJxM}Y(3or4Ey_r(s0_L&bS8-@wIS?6QREV04P+su5ydoEL1c8}TvBRur&3NC z!$lwDb()pACq0WS5WAbJDtydSf0p^FnJSy!(yz}{Sl_B9TG|YHs{C|k^jRuNekY|5_Ge=-f8L9u z{uZ=>NhM_pU*P=86waPRWjeH@1}rE!_%pzFf{~}iXp>8eGcTpq`{1!uj65exPRiG^ zT+Xz0L~=Nm_-RQ;ll|g8C@pzdrknG(wrAlUr*G1U&yZ8Ke>Kg80#T`mE0@#4;Bqh( z{bKS;iNCHo*h=O`!VEg{rY%U;DL>n=`ECDl>djl|HYb!C6Rc@>RX%3Hm7>z<2;I`z z!Ik8tZSGfi_SV`#E)=ZS9-a%l?joK_EHT|KHzS)pabEzXC(oWnxLjX{c$ zTwAv`FXfyae>D|_>g`uthmdBUC9?Vhwy|6Dm9=SO%#@bs8gCvkdD$%aeozL&@SvX+ zpnQVH!UKg$&$aQmg7$RYz<(&L$+=*-N_D=QQ&#;T={ABOprx>i$Tzi%-+w8)Pjtcc zjUz2VjuE^(Mp`zIbh#`d6%E>@BE!yw-obJ0I!Ycmf2BV<^s0DH9B@jH@Pg&uoILSl z3{vdLDi{?GOobnHbx^QIk1yX>H1tf_?TVM%)F5OyNkuyhO|xjtQhwl=WEkQ>Zf?Q{ zl=@u`0q7GGJ(|m#FmnVvqxeZ-T#Ia$-T*({QoqtXs=s)*@m4Xq^O}=%YHVV*jUUu65 zqQvTZ&96i-6jsdP43rXTaRf>Zfn+K%BZz`ve`Ld=-3(uZV6=-bT1j0}H-T%hNaQ}m zD~DkWlFf~<$_UkB)eark1W;+l5wjX`Yb%O5=EfqZt@*PGpV14uP^oeZiDE zf1eVXIuEHcxO9BAo*|6-7;_vjk?(Eie`P#=G@^G~gxIe2MY3?r+bJbIbu!nN?Oxz_ z#Jn8r%zy9#GW+};5iABS^IYT`q)Un#z(5Vbq)>x9^xH3Ex@*3Uc5IqIn=OJ`Uu|M~ z{VPEW^E|#21*d|i3$Y+1L&36_p*;u#f4)%LPk_xTrxMZ$A=>}MkAO01!5fX+JEapS zTV}5zGyHGYsqebtx(Ztac=hmrzbmSZ5dn;6a@ds4QoQ;B-T5HxG2O(DndjTV_hWjq zBtw4>eAs$5*^Cq#ispx-zQ9Pk=JMreqm6Ij&-Ad*DVw_{FIjHCvL|kyH;9FDe^-RC z6SVmO?|nlFC#GAuM1=3DZ?zC8_#6z(7%ZhJ4i#Lc6Q24!=&|rt@bX$D<1=wEh1GGB zX7tJUh5i6Uw{VsIu-GF+m!|9}nK1@?G$Ef3X1?5#2qw)u{YsIDE|`ez2*$jSLp4@s zXl!UZNP1+IVdSp_w6;Nv%{e-Jf8lt}82vl6TGA^9%-MaIJCL-9^zrERUXH|*>mjao zfH<>MMvRS=!tduXh4@^OUjk7V6**MT2PUiv#s&mYP&j^DQe?dEV6l{Zkta@|HBWoV ztVYlje@MoBwxuv1 zPhCjlR8@+-tY-24y0hR+E@^Y0ryhknd+a}kXl^7u%e2IO)=xbR`$6&PUspJ17gik1 zPi^RzEQTRg#4 zo@3)q4t3`oCA6H)I=$fzF3-IGXu%#E?RP;#2W#A%DS_tTk@~H2Yr{&F?j4Jiq3sSd z=~CbL33O_|B@Q|ZTs_urL|M7ZhaS1R9Jbfp5?*A0d&ZizDQz~6VF3+bxrzCzqDuX{H5ngup`pCEAz7Jhpl5X z1}_jI7q_fEVohh~#veA>k`mzpMdeLw!O88k_739tGwHrdz2CZr{P*_Do99|GDbkIVo_PdRu2IE(lP@jpwX zP}TH3T2LS$OGqFf&HqM;B&jMV`|tMu&`4@}4yY1ne5elHeI%qEH6CsgBpE zf_AKt0xe_7e@gh0u3Tx;EmWhe`9ccRnq0|U&mQZFF~s7Zr3*=;ckNPr(sw4IjjkeB z1uT)K&4Gwg45y7m?>}aIi@<9DFZ}Va4f2qt>Ww6$X5^83{od82PAY9=A`|$dXiJsT zx!T>3IOu_tg126?|&$v0f`@(5}J8KvXa z6MGE8;kED;;gDh@G}{r22`p!y{uGD}z@&psb!QNcC@UEXHDR}(`VukCMEwYW{JqGQ zXlgJz%q!w`^qT<{wUX2Aj;)46)!^e^-m;4GyT^F2$Q@h{G_wZm7rf2Y__`+nK z-d?pne^3llK(#(J3w>)KUNsT%L*2ySNzzA>IE^H+bP~AVSeJZ2dL;- zLF`jhwFs33y!D<+m+Zj!Ei4xxK$)gU=6KV%8g9Dss;^>`N3h=Xg%?0mmX<m&b%}EXdR>}J;Wl7n|6fj zq)VJ8l`VvB!NT`2WLjgvD4%;Gd8UPfe>d4v=7fN1TJkG7cl4oMkeUHS8{}iPCo|i4 zgBQRo51`Sy*4PF9m-@dqy{{q&5ReBr5Rm?VBSQbJ=C9!9>geYBzv8q-byopZ2_X zQT|Zd4jBsv&+e2jOP5ctf4~Q{Avg_}r6!}2sFZ||#QG2xMu{dfqkWQ#6mc$gMuPWx zAYDt*A(x0YE-c`sh0>l!DLou-74gNSZLrJ9b&PM{Q;7zq8}!=G`MHB8DdQ!(Pfl1n zD(8ywx?Nb;|0x@92lYwR71gOhf4Kx@G$&Aq2TA$tq3c&mn+`nS&mSX8T)o#xRS{4$Fabw=DmPn1*_CP|Gl$WX8xeB%<34&pGP&@(ja=lf2i8KpOCX1 zr3;-rXL2TE=-E&ryiL$e>lN;Ixbh$so-Oj zM_Gpaf}n~ahEMK9&&mS+r8@kJ>vNOrAGUdc{O>KuY5ptO=%_3TqJ5`9C=0j4LIqj>JBWtMIWvFZX>*w6 z>iT$CT_pgr-}@cpe@^;q9)Jv*&RBWa7{sIrQM+f&sk`XJ7xyc+JyJ(5;;=Q22SPR` zJUUX*LwPhMt_u!cCGMo$2QEx>B0Ve307*ZWM_>KEn^H1BW^JPJE9Pc{%c!@tF}SJ_ zE$HaJP$Hoj!|(Tr^t^2@O%HtsrfHaOHZ)xbj;6L8g^!AA^_r5pclIjdJ*20fm6EAEvCQZe?Yf^zl5xWB5v!OJs;H}0rMe}~* z8E!Cg2_s-|yrIpiB-OQhdfb#v^o`0f71l*VWJT%EpRY`_7*@BAIU07Gecx$Loms-m0}7-`Ety?cgd<24h)NDjuGcJ4f{kZ9pJDFTXV6ulD=N708Rm6V#JaG8>84Dp1%u zU>t?HbNrf%(@jR_GnTb*$sMsGHyZe_Ya(sBGFV3L^1kWhL(| ze<;F)I@2sQL#N{)-GWpKTG5D2gOAS`Ljn3$=nyXuZ?pruXD553Ay&|M0a;4BA zP-W8DqiT!U7<2Q0?{|NgJ*L*^_E2YFa9#R@w$gocPz|>B(q*?Adn`>3$LIokuA4t& zcWpNFZA z9yX1}rO)^*L_BDvh#kQLG{wxHz9+L&@Q~67K%<4>V4&FnJG)$Vkd-kkI;z^1f05>* zhHV}sXct+|8s4?fz|9pES!!e#_hqj7i;|J2P)_~NGPKVQbQgms8VxeaNnYWlmfMO5 zL=!%k@UkyHfY_9Bx~Z)zGt$VSf%Hd;F)N+#pC?ble&9<}L!(MH9w)ki&t#1KyoSS} z!Y5hUiH$SmYVN9_{&6`Inr6EYJQO7fs z!Zh!I%zeC6snEBB^a3=SB!^gws3XF6G(X~aH_AR+p-|l^$QE!Am_;gfe?XZaM)mXS zKRaD;6`cMO7!Z&o+<)O;&HtOz{f|*Wb)A0`8s8)OK6s-YTym7q#r6ki;kvDgIFxf} zj>$_EsKVJGL6434@j2i=s~fOjJ0ElD-|)pzkQ3PVR%+A^Ud4JOYf3h$fVTyot(j6Mj;SBGP_YIbD(j7@fz!hSTQ(z((6vmBy zl@+50lyDxr@&dY}jZ6Wqpc`{B_Px9KFt6Fs%MZ1X=8{TAwe?C;+ai`AIJ5iV8 zsA()(_1tc_aU5KP>$22{rL*5!p3r^q4e!!cd!f^IZuT{C4l1D0)OEXrsbJw9>n0{A z!rF4vnS0}T=gVoWiBiACU94nP_nob_Hbc3W-CSsFJ$h$D$s1!D$~1(Fc8CBMvEXyG zQ+sI@Wqp}5KCRiTf5j}4%ABaloJs(}Pxz5fKQ)ysb{_1Jj}Nn?Alzuu7Ymvf+c zy%X|aZVJvuW~1|Nw|7;q{vy14vkO@btE>vPt|&58r^Utw-2CMEwwBQ+b-(Q*qudUn zU)QL+)!Fj22A=a%u9lrf5Jn&1=b9)>=gE_iQHUP-}!|R*-&htuMVXn)7^T{uO_H^%>Zf4?_h0H8);kAq1iUHp6)#m3J{ z+YEW`g#}}2)9JT3_)MZVd^3d;?J=Vs?I{mv^$L>p4#awcJ(vXBXzx_|L`@1$82?zYGUJd?c=Y)fOF@mEVy8yqamvq% z5(Xl7f0Fcg$ z&WOY)V9q>a1V`r^dVai2(ZU~T&*srWSws}G7+kmDN16E<4zHK6C-HJi$oLI;hP3Oi zfAouZqXp!jX6DSxqErbiY4W2C*=G*79TaXA1?}&d0tt1w2sl$p`$e>tCea&S^Ro?q z46e@pld~%vy^~cbZ_xC5DN$EbCrnso`ij0FbzSRXpR}=XNnue+Qj@u`)4Z{A&ehej z%I)UYMA>DpN({v~?6BYde;RuKMG(eOe}9HdKmY-up#TBN{~t$95eIu$X9ru`|9P3M z`Qd>&ivA5Tsok&>h>WEuA_bJZMouUKRdba>js*&0q&pdglhkVBMaH0iRr%qVFO|hU z{jp4b7Txn;xj^nWPd)-qF@D4MW%2H#km=xl)HaqF^f+e0=3{Z~ar1RNlSA`!e{uLC z09H@%Gv`DRcflFd4M^tBbo6Dr?#l<6LYFWtJ~?e=lFNyb=Fp0C9?;gL&Q;k2S_o3YVxQngPgtI>U`!{o-X zzrs)}#w$+CS$Rqhf(ND0iIi~~e|dwv9O>0%yH%B{B&Mm{n+{idUwbuSnMPk{*tn=U zG3zj!A$gbP<)}>^+l253J*iS=_5@JFRT?>tG=YHo9&iVRr-jUm-|J5{1c!jg;pLQp zqkLVrQ`NIOa2*?JVzc}~<}z1Fn&}d=%1g^F*|8ZAWi)yN8FgS>@?VAKe_d@Q3Ad*L zYvlA&R<~ha@ho65eh1!WK-Drdk@)V;P6~CJSQp;YlJB^wzTal#n|+dJ7T1d7)o+!} zFTojvTaXA^PRmR8XT;?OIiTIGdh7V&@it*)SQ}Z{U}v66QsXz$kJ(l%T#HTd>W48t z5R(Tzc?yCRYr@g2J+ygkf9)gJQ6CvG`!J^8=mO`yXlM{rbtz-m&^1f7QnSb;hqXUN zpC(Bo_FKHKSuaX~+X~yp!DqjP>LGEw9eLgsgyaTy=Ag@icQr}}+~9bk?XukZ@s22_ zEx1rNUplosLwauYp?WIs36kKymU5WQ8>eNz2DyTm`&%p6k-+nof6V2Mu;Apf-Qwn+ z%;R9;U+=V~L)R~X!!uA~8Z6z4fC>!AfDFcZ8qSc3xsN^hMW2wIFxpCNc(vK0L#lqy zn#FBYrL%V1?xFL_Qy_HM??L8P=dy-Cdu$nG4aMu+CAZ-CZ$#x`zjD!Izk>T)?P;8r zyma)FZ2P?6ytcqxe{xKWOD=7j?6tk-1Zmu52Cd!!f_4w(f=oE7AZQORmNJ5ou-d7@ zl?*R|z0?!k~$x_9RZljQ@TH&N?HO3K^ zA-q;|;Htoipo2v4a^ROsY!2_rccshMSA~~pwaKbD73Nv+e>kiQm@t1)e?)|>8!e`-WG1|oG@-~Z z0F>(2p-c|+H8zn^mk*%oQ5%t62O4*G08S2`I-4GO>0XXh_|B%Ft9>N(sx68Qprqmq zVC+ydP5jp$MR;!2M)TV(0)$R<$sbahMIKb8u0(3>e~oJlLLEcdM3SB%ajNYmL1U4F zI}-EMPMs`}WGr1>@QT9r3avf1vJBtq;r>QY;Psk%J59W~nI;NxH<28;DZ#QF&=aZc z2|Ou3H65P*ObF$K^waAPZbIzz8^Gg^1ol0@iKVd|$!GE!S0bCklE^e-wdY!w(mXie z&_58)fA0JipV<%Fa*)~8Xt~{mJ*(ayp8kh9Vm3>6@oDrQ@@X}2J2ctq9GKbP&N_1@ zEj~)@Ff+LQaK7p5n+iNJTKJw;jDE=+=6tSqMG-vzosXzt?ad-oot-_w?@=rCFw|K^ zkHD_(43%9~V~y1pI^bh<$@r`2gIF<{Xq`42e`|T%gbrOD62}_ATQ_>;>#kxwWVjaX z_u0df_8Gq@TqLr0>AxkSVX2*ccw-ye*w(ot_5i1@AVSa`g|Wfn{)5^EC2JzrnHq0Z zeIaLx!Xo*?Zqe@iMP{quAn6;}I$tVV$QTm)XI$19BCFQ;!IIny{C7Os-)n5&TAS6h ze-|ejsFowaq=BWb*H1EAIS0GAmMqvJXtLZ9I~WUywz4+53~Q3}=Zzs=;14XcdUU#W zcpmIcy|tNocgFtB#G+!s5emwuv3uAh&*UXaXF%dXW(#K^1EVX1evwpckL2$NalTVB zA-c=;4@U;N>mid@6bn>QUo1#2Yx4K>f47c!%BTZYb-(IwCFfoM`}Y?npDhiQ0#ZY- zTPn9_%QimAK6FWeF}VPb`CJc8gBcDFg9LVAp^iwF;Ye`?gUxFV?@d(8@u%GETUPB` zmAHgsN~atrhSAY2rvHWR6U8TdfH=gFcCf5tY}iA_C)j^x%?i6Xv$uZ)ZUy-Ne@O%6 zzq6*KnXTi0@MVe0?7wYd{{~#gD@Q5j3yPs3wH&Qd6T^t1^kXH!WUyf|G0|@pz%_SG zyRSw_9EvHBXLoz=S4IZq&wD;AFn@b@1r~tQcaG0=d)@dv?7U1*wHXlf0$~k2L0KnM z3L$!{Jyx8?3kp-m00*pm?iUhte-|4o4x2%k$!ZSZSwNAgz``vQ=N!SgVH@3P)zuH> z_>3s$^1@?pvfjf2NIsu(Rh%_MBlpcm+?_M^{;KyQtu&gTdCoUzbevh2{xLn7Mz^oE zn%r{a3r}zE-q-r;+$?J-d*_?TV+AP1ZEH7a_g$bzgQMYb-~`|Ja%XO`f97SPoSv}i zynv!f=bt(3Ag(hL9hYM$#m9$WVifve6$!;*^{QYUT=lb;Ahdx>B%y8^0_=xcVMY

e6U`oLl`irvylA^)whj7vE>JH8j0(Ex6i{`5BL$|`F0?w45%Vb=>};=>DsXl7 z-?jY3O6+CDwTF5WNhVK)PzTeN9-`6tZt;S1S`b9SmfS-Mw)r6k~EvS#W@EYmb9toqcX^DfWwOUMPm^6m}Xx+8F1MZ>_D{AXrQs zfTWA-1}jgFat#5tDQY~X*<%3Lyrs+CShPrLNMeGUVMaf>#L)1unXIy=M*pPtbL&fT-UDX1FtOr9jr>p|lCp&TI4fE5Yh5`edyc;BX?1IL z@pY3tm#?d&trRpBz|+#vP&-T=E+uQ#*J}6N#a|}i8981T^U}>w)jFhOsC-mYW5%o?p{Y9Y z#z=qfIbJ%}y{tk{Pg$Lz8c-*Bkxjtl*%Lj>HMpj$eUvxQRo3Tg9wyY%jcckIAV2(p zzJKe`O^Q@GLxzc8V$mF`oTH=4PcA{XvL3r_eEG|_D!*=W9q3b&+cCBoj0r2bJX&s- zw}gK=_AB)b6rd~sP`F4wU9IJ>({i>y35}&`YP^=Q@ODZ*!^4!$OzkO@o^*^{2=bOn zq*2P1Df^_hpslN=r+Qu`M<{_&vhPk(uBjyhR>0<0k#t5TZ7PEvW6wCxtr*Nbqp2Q~ zcg!h?wNy=6MsjI&lPY4lpssGPXriW!>^M7M5v8}jfc2mMqCmy(4O}?d3bp=Gw%Ng`do9{+1q`o=!B&`QUYk@c1SJ1r?-vENOTPB zF=Ko~1i_V%ZQ{mUHFs;I!yY=nXrV_)7ciY)1dHIMmRD;q@``Iz3zF!oV1xK{DhAZa z6nE`ye_+`|H~x(iL;Z{=^|dee7h!sH0TYh>;Ks@tF0k#lBz*wfEiK}Jm>mczqa7TY zPVFASEn_h4ET^C`MTJ0=P0{vgb<3bIcuHlbiU!_D*=&lPC;I-1MW@x!+US@-CkKWV z8Ht7Vs|`kR3L{BS8#fZCF>+r2zAoOJtX|u~)WFt9$(af3R|&g1q>5YAP*$FCl8hxU z?(S|@)#KHXbd}jDd68KZ9B^Zc$wb$*wVf%qio3xtD;l<-V zNAuJp*MmF1nArhR%RW^B_869`T@j+(R*LaR~d>4|P_M zE!Z5;_>!uVLer@m<4s(IDk~-NYdPui(7zNw1^%@F%AJO9y4JwrO_0JcK`424e20N< z4HKDvIMy}RMIZyNnsK|mvmS?jKpPfeDAjw_QlQ4fQ89%yDx9XGFpi&fqkac4E5_ZM z;8&xxvKpph4Xw)^Y3Cmng~NEDwv%b*s>{^9ZjV_ zX=x#ixhdvy9@Upr7whPR?+2R+e1q4m()~D_gVzfeFBNqkE&uqRNFB+7B|fFdyZ#fD zGFujH{f$iLX*RYyfNnDuE!0T5qU?*{-<}=&(3PouGWSGwb=hcgy*ihKD(?9(h-K;T zjE4`LtY@wlDbn?431@Os1CP3r({TqbZ?V(!?DaPve6@H>)lJ8xNgP znv;Yr9;=Q4u@i=p52~^239ppUo1$xJ$_f=yfHd)2`$6{a#$fH1MoO~)88mL^389<; zO*##D9tJju71=Fn5Ua@`qJZeeVL#K92@EQx_1v5I4>!Cyc?)2Sf>{U=H9IvqPel%5 zI`tNggaH;VINFGBacw7MGb>?DEtu}t>N{B05P#ki;n+pz`I6*%aI1~X>M2wB$^07X z&4p$2Be==RSs|1y8xD_T33KD3$qSYGv*zX~gW50VN!J2OCIC1yHJ+ z4@+ZB6OYF}SV0qhb{Ugqt2@HTMI9&BR7a{I)pdfa~Q) zYUgOhd%7?ou|?9nvj6Q36n>a84YgJW1Z(TW|4E0tKaq>`d6ON?qq zxo(4!V7f&+h8!eFu+1;ea$GvThqt7oSn4NIp2Iv5)<*4wPuA9X6OKCI;^U2Uj!73t zd9y0=)g}Torxx-!0KFV8O`HfC$B5*LW&#RaIR37nmYTZJB!t2Md;T^4QXn1dVeWeF653YTH(MzWb6LM9$d1~@L_aJ z@K&XS1mAAbVy07tWH>H!(IFFvcx-49Lzs#RYO1<&w)$=5eVUg|PiiTr1Vm7&TB@6V zR7MpfCV)H}-$IC@A}NR->Uq$vc9Q~{LLA*?%L*xzSu zbwHhTpMFJydce7SicOtF2U6$xKVA$VUj zZmD4R=R6y3eF<6r#40M06}&-DCPW@AXX3UZ{XpF*o7^6w-SPn5iDH*U*)E&>rpRiS zZdJuOo}9fv3H8+&hI)G1?3#ok1bQ-XKqs@FFsdFKWFaQm)02kBlHP z6ZP=Ht?@i-UAC3h07-|nQEj_C((b@tjJF^XVnig%Q}as%C0@}v%~KU69?5COAjQ7* zzUdUEaE2Hnwnq}nfCXyvq_z@^$G(Obzg#GvFzmSBw+qGRY@`o!gElVLXd>O{$?Ing zO`>)Pgbz2Dyjb8K-zu3G3y1dIxi+#~a-Z5xVaIl|s0Hy#>m`Rg&)k6O087pmV~#oF zHNcf_W!U9FOOAKWe|Z?@KuoTORDX4tCd5arrz~=9MBw*h|HHl}atDeeb$kNb6&coD z7MMW&0wHuzDgFoa8j1{(&ov^U4b5jh@)=abSwJ+xOQA!ms-Q5?6ZQ;(r5CPP*qO%8 zN8)Sw{;JwZ%4rf4_JQ;VEB;R&0O^sW(h5eMt~8MKKFky4HN7xSW%@T^Kvn^nT)+$V z5Nw5o^oA1^A@Vg$1?L4tG|K)v;uLu~Jhz z6Ht}UDv4|#-oie$6zLR(sPlqu-Q}LUa~dKJYgaVw@tw#ULx@gjS7Ml&`}8Z%1R&d#i*+j>%>U&nl8ZTHg7YO=u(G(AB}7+`D4M z%BCubs=L}G)?{}liWuj@EFx3P5ewOw6OXbuC6)v$Q+<@bNR>2hSRUYUd+(CP7Z@sp zggu$W_hos;XQ5tKO6d|trXSp7uZS{St9)H+qTHfb5F}7!%+jB6q!lG~5qn`t$)1T= zGkL$#QCCNu%_@s}q&-DvEeiH&Qcy}{P#&Hnu*&j_WRqv7F%lbGMawe0WW7oH#_+U3 zvn77sVUIkVb$v&Y^P~ML4_jotwZG}27$`oFkr@~b+FN+cAHUl4;AMp^408b2v+gPV zEAsegxBgG@J+k75-T1{HaUukte;%qavIpBQP=N1#BR`4Sq#JHytOUbT0SWH-WK0{b z{(Q#3#@9_&NwXqAe62_-sW@Wg&s zsj>b|{^MzQM=>b>k6+!Ji!)3!U9V|Ol?QClxNU~onFyyjMfOix%K40ASVI>FXMbR- zW7NG!WYc`rQaZfDDqkbCk?sEe9KkuzZ?bcx^j-8RlCEQBtP=MZ@;fo?uKk=!5L8;1 zA^h#C2E8vE4+r)Zk@~CxY^}lUv@GB5`V@JhD7afjX(S0fTR>{XlH zy&u_5y>OvZ)IW73nzw|cE3^aW^=b(ipkQQNu-_z=*E6zOEOs%?6L_YwyVS3~y( zoy`%GAoB6e&mTBM_oH4a{PZcR={REb&Yvrgr}0t^Cr&(-^-oCJ6^I(^=vcwDw7uap zu2(dfcZ1pqE)b%yR~Ej9ROM z7r-~ih7{X|7AM>_h1-UVoAAxQY)9N)3d!~iPbL+$~B*?V3PDqXbD048(iNK6%Mz(*Ia(%rUjs+StR?mofY)%~YG( z1a@rzTvRsB5zMFDjv+WG0UAxdZ|f&thLDIhZX)TkZrlJwLYhPG>^{cWgJu1d&ZnhH zVi1dpF6Xrdts3PIyC$+9-3C85v?vN?NtUR+5r2skJ|t|)qJ!E(rDZ`nf6 zv2gq1r!qg<&0Ct-mBj;|=Fs@v{bb7T{33joFdEPXAYV5AzW6-+c8qq>oM^Ak7!gEL z9!CH1gCpe^H(ebQvZ9(n9a5%x8bBc(C9nbrMes{=-f%s!BATxaPzw-B-`>Ydn{Z-2 zZPg}=oUAQa`fiBYzi$7&KhC;_`(9;J9RV8ru0cvw^pv@A>VKDdOZnelk(XW|O!y`z ztEDf_5LBwFeIEjiv+A2l%J5$ezi!tKguZ%v%CQ47iHLzZ<@@+(Jia;_*;_!r>=-fo z{?`B5hjd)h;M6>L5~p!tpaB^*AAgYjdS9p2%A1)q(>FRw1@D_2ua5n4R1faV?mHjA zJp&<#{Ewzh_3Ret7(O*8&?UJ_V7@0ZpFa5oPp32XPp3<-%k8~Nb}UpNV0tAdGO#?D zlOSNfJChg~wKy>Cr;6h<-x-0}vpp2Y^u&sp;TGO!1RB3FmlF{?dr{Oy9eLUvTHC6C5Zy-GA_fMR}x;RvMZ zw?uiGo@=!Q_V{5RuiAs{WfyYiAMAbH@!RIoA@o3b8X5T5A@SP$YX$c-=!&OFh~em; z0QHT?0x9FQADGFA?5hacY{)wuCZ!0kvJagBt}zJP0bN+#_|0aiP#;?Ah*uMG383r< z+>!aMCGs=3CD{^vfs-+H%A`%SJ8BYLRUSv)P=J{%jkXh?P3W(|5DJC;8v_$tsk(^! zd5U2h1~ihUJB5OE+=>4Bj~=rH{=;yBLGxg@r?c=Xki(LUKF3K_yNY5&X^@85`mN8e5bQb7v{v|UZS%VX0(=tiOmQnW{e7d zKW`ok;zXO#NudN8PUxRdhU-8HonwP28jWvJR<*0p{q>(Bm}8CuhpC@?I{M1XMW1-R z=yx6tT%S$M8k_#tpzQw9ucn#Wku{Q^)l=})R+FFS>})(wMFf{Ktw64sHG3Mx=9k0>`5zHOM{X zvkE>8z`&saPYdXyK-n}@;ppAHN~;b1zaCe2pZKMQUxyQWYk#OmJ(#AwUg&!ZTCZ+M zFB1p`p4-?=NCyMH{R#!9dY$hJIJ*ppxZM{azSXr;>YIrUS3KX;j0*P$^$>(a$K=p` zGDwBQJ6)QA6-b3t$IRIMAw+)FK@_y0F=F3@5Qz#!gtGh|~lVsk0c=qa&?Kg8xT!@?R0!plTOy2R$4+aZ)< zqM@R=SChoUo}#MKqIuOAMBpSvlEfb!O;7+~(NxiO-CiW1ZbT(H$hV1=aKt^r1INg> z;Z%_b4I(HL1Oc6a1>*1VsvTIMjJ>Xc)?-f zNX%nw=?J0-PGMqa-66;Y6eJ1hkOORfr5SaHAwOs0v){18Tk@}+NP(tQfPxCCRKL_x-WB=wnK`UFfKgFQ~&kz6b-YF-4 zTw%erhB$UVQyIYx*N6nf*n#}kWeUT23txQL)Eyq0G+?dd@zTFNmpV9z#&KCe6voNX(De9bk(2H~Hm9l+r(2w*ZD)rH0s-VxN!He=&$xJkzC0{Exj#Tt)t#~UpiXzsVu#-I4x zquYz+A!Z2?~=v3v53gv%O}Q+)BTEs?Sx^ zJ#Fbdi?YkD4KNG0rq}N5?vGf(*s-#%1EJzb8(-N+e{#t)@GnU;E}5Us9JfL6+kCk(r5q=mwm|ascv+b=>;Us^ z%7F2URB@!w&Pht*Y7LJ;biYR|opbDq+fDfnePbS@+-+;e#+rWk*2xM1tuX?U`!$aN zxLoI#2PN!a5uduzv~dIl)YuBk&RV&%w`=BYMHRm7D*VZwNzJ-?U=&?WVg7! z+}Zu(2Y%=W|HU=RPgtIUy%xu7Hfe?ZMJV(p#f613%bn4bGaC< zWc!#M(Dq{)@(8NKk9&g6e>e0UcyKf99mTtTr{*1(g`{8uTv*55(W@x=t{yEp@f?nS zyYKVb@ExpQ_j{c{c8PCCJ`cn>A=!sq*Mr(eYZakhhp;^n<%7Zj&TkOgf8qz|?l`@9 z6$-{4Nmu#75C+^mQSyQj_PyRP^@H&4n45=WJRt&Ry1;*|_~3UN@*o{_6oNf!ECxSU zVfH~T$?lNof5%p<_famN? zZGP7btIc|DSZSu+LSCIhH{57Du4$*6{#Y-f9dn1BYRw(|*qAi}vBhW%Y@=CM+vog~^230T1nKY-gV9Iw!$}V+n*qDs1 zQSMAvqtelAefU$YlxOHRxn!I7K%8CQGkB5Oz7Bk>*QWR$L8r`bAwkKrVcZJwSlzp> z>_%v#2+>UL2C7qr-eB&=3sVKrczj_*TQX~C^z67=HESVJ8EaeH6@*vY)?~7*cBT1D z>Yn4x&ZEzlpIh;hn_E(6LQ%ceq_V8DQF)Pj$ zC;XI?9C?23kOL z=?%4(BERbSfJ~b{zwG%`-;R-CsmC`=eZaz|wMSfM=(6ST9rs$5UxO!qZi)Wnv31I; z*B#EFU}qe|I`<3mTHe2;Et6sO=2WIdqSL@9ioos=#FN#8(;!u8T*D&f(1w}(u9zk2oe7KVYdr?*YdD75UwPEm-+9#7 zUwTy8-&!0-fX)O>faQ?WUww4qD<`J;trP3?@zHGi+;Toe!;oxi5Iu0G53g!NT|KOn z!4S7Q-VP+(g!JG>B4a77NpOe)QJxPmQzeV^{2Ynyvd+S|9oN zhsJ2dAo<~Z?C1wH+t6oN%E5ND8>4w3nu?Y{z=o4UBiovF$g6E@Y42BaxCWTSG5o9>Bp~x@DG!S6s|43h$(^N5mp0ChqN+ZrI@BhmyHSgr4 z(zOP3H~2WS`s7(Dxl1}eh@z}WRc}4net4ip6y27ptNd<4!y4Aw#<*f&dRF&7m{JF( zwS%m)%O~)kT~i0F#tVyi4k3onXE6gp9~#@jRIgy(h+4Ezg`m`0irWJy*J;<+4|Xh! z+=P6C4y>Ck&@E%2*-xcA&E8rVe8S%=Av|21cn9SjaL+Sy$0hG7j-cZC&>LwDus{tF z5Oaj?Um^#d$MM1m(P5J8qmgvo!z+5v7Lc-|F<#-P`}Th(ObUuk(Rjl-!if&7DBcvg z-ED3+*upyzwRfBpvDJ(P6dn9|^KP?>d^<4yN!xrjL{{+$n=BYjN`LhV?q~K-bP723 zpt-*MDGw0-iT)7cP7nmD|4`PP#1CzJNp++MfN?yO1Au;Dd8gWke7?Ni68it_JzxMh zevq3V)3x9O#H=;>>wX!=$<5Jky~{`V5zncPK6Shx2!|@%+nXx#LhZ zs_~-et9yKQ3vGUY>Ds4Cg5qvK&q}<94RrBG1~**o2JyBFF2CHFi-6eQrEBnG;r&d| z^#J(G?{YsruSI9%OR+V*czI1-Y=&eB(KO_Zd#lWRMA_XL^Hq(@AgC#>X?hRaA*5N{`^9#-#Iu^^@Y0s;Mt$tIg&V$*#L8Jo!n~b8R`oJOPBvPr|38miPj0<>w{o>r{qLWf2A8D z#}Gj<#aDna3MCQ_^er4T8U!lMm_wA$pkcK{=i8?Q1eu7T=MZ`iN)5uDM(Hcdvp6MD z1SWq+`;n_%^>nz-M(5sWddu!{D=`l{}PtbBS>L%?21CBntbxD|~HFjWt6L zBQ``8GAhH0U?GGy8iS%nC+?$pDKdx;coiYiBa11QePFpd=_X;wAEkF4rQtD(P|`unc7hgD zGX8xkb5Yxmq%8X@A{)xL6acB$_+8{PDp`iinN>78-z zX`P#^FiqH>-UYQF;wnLuaFM`@P^cn!^C+$c$?4FD3<`^*1+Q2cmdPI*NfzqopzJ5& z|LPcRlDXvw1LwEF;nMGVhCe0xU&*YW_|d0Bmhy}I#kspvR~A~=Uk?ZJzCRRwh!p;y zF^CceN9q3x2jfr7scKN+$|A!LP!JmTVj{!4?BX1+HU^-AKeP7;`72kq#San+phnr)eMwz$d2qlxt$2SY~Zqeu2UmdKknmrjztaIoGY~kqZ zB&?;5+dz83{l@nIf2W(n>ZfD(oS=4iTzUEWwYLcoATh;eqY!YEZ*_3(jDG(Q*4{bD zm*?3QojurN+qUhQJ+@~)W81d&*tTukwr$(C-}fFwyz_hUBJRECbaX{jXGLWHQ@vKM z?5fIutND?ml=JY(Xfn?a?r3+15UQr`Y9X8yB}zx<&Ns^kyx*r=yOuAb%s zXokz6D^JNZ!!kru21I4aSY#@iiWQnjOIb_|-bx`}eSduFQ(1!uFMFFu=8|}$@D`#D z73z}G0lf98Tgmg9wIG-3lXH;j5Hu-&8xs6oG_1Q=!_ZN16Ly9{Db;1iWWr>&K-*gD zD{dn-qcS{Tjl!DTrg5PUhVB?dGJ&9nB`J=*@xP0BRF!5!=cy2 z?HMyj=!|vjF)I*L8blz#2f3QHwEFt@CDBk-8=Cgh1NHU9M!X*joU7tU--$+zFpRV> z3$1`X`E+UmKwNvnwHbf{?S%#`Q ztLgehPU}X%W+Lge>$BTj8VY$`16)U>)I0J{o3Oo_>vl_(Q6ZkU1N=`W(6{o$m&8gO zKHX)Ms$;^=0g(^-1nTKfY zs#;NPkX!n;_Fdd`Hh9ed&f=01mPP24Y+qo{zT0$`4qOxspL{7~Xnl zc?_!?Jj=l8xj3U*@<5D!>1%r98)J3}!MhnmZE5*AVl4R$7;Ps7~)H4y7H zc->-5o_JA6>^$Ge8wV%qui&}5e+DmMmDpq2BcXb3N+4zxB9M9#b|T-F6LOZS8j3zU z*bN~txiKhZm+yu-J@UzPhowcX6CyTK_-T;i4ki-=!qaHlUQw0hX8C?~sw z5Ef=03Tyz*6VKnuCOASL^Nr7@OL8}Cg!so`TrO2V@g|3x6^au~bj5ujfa1_Ml ze`FxF2Q(3XhXOxkVA#I83dh0lB%0{il1_O%nWh*wfyOs2knuP-sW2*4kI>?S0q3nxAl8 zL$ZzDzP)`0=+Yt`yG;zG&2}7X27a1#*ESKjcy%1RA`!^j4Q97VLv-l+<&j0zyDs6K z0q9t5LZb4HyG++cM`mA}cBm_E!CI9y2N6$ApGZ2YvA=S!195_0^s=)Ulw!iZp@@CJ zE(G=&xKNneCR+Dsi39xKdOxGA4A8kxE!qnk!WwN7jup!OLQ!591G(YEM-u5(MpPH1Ola~F7 z6Y}O@gdYl7@onCM7(&- z$QnkUP~(W?ddu0kkikp#BxP0&COHsgT2Zp>Cuo7g~1gKE`Q6kb)Q+>k&M(%?wLdZ{Qy+p(-TV$(3G z53hb)S3>hpG_FI}!@(c>($8xd5Og>1I7@Xv$mWKfj73kD^QY_1z+V!JAGCQS-_?qH zhAn@8!`(J~ZB!%tK)rVwFYbmCa2&Mol)Z*ky5wm>-bd4A>H>!|{4skWUSwY|bXp>%5L zx*q$sv6|?y37oOEC}U-?Kj7tUOW!}lB?v{;?E7TSyiJeijU^;NJZWyofqX}XO-L&x z9aVKV{I$R~EpEM;+I;ud?ch$-aH&?V>?%X%YRT=x&m6p^h|NZVnd2nD=v+TU0+G>$ z;_R=~*S}QTYp?U_ABP75vZ4e6()u6XXC!26otrK+4(zeYrwx{OEn%;ex8wP4SDB?xtij;85QTp-?ABF(_V?p0zHqy`z^^L=->^S;gIrz;eZHUyF+YieKT=4q>Ham~bzrtCyAoc+e{FwrzU|!K z@e6oC?<5QU)Es^{^Ef1QfC3BJ1yDeR8oX%|;TPR2kl{=I0d@P6I3X765f1exe^d~E zI0)QUE6-PcXo%Q^P8d#)MxD=Y^ zw1IkbBA=Q|K5Wg#Scn`9EsHukFuCuo2CM zB{Y5e`+&ECR6vV3!Gcuq0e?4IE+z2*tV^`0i(NDlsf#H~Mvud|@07tf4|$YRfO@J< zDJ7*=(&Uz&!KO4)ibs4fFf2lBOoII7L516LKgN1^Rd~E!S{9WvvC~O8UgjbTOG1Ad zwwSA*b+I5rjAwriFr}><7%x9oY{aq_Nb9^ zM9#9bP%e-Wpy5PD{zLAP1dy0_M*@QHDVbn?EqMm@7 ziJ_vFs+@9i^!c)$KyAgvIdobv*?AG!RzmiCRqnb|FrzJ9JYF;=nO`k3Ac?#KJunGT zDnf^&ENUZ^DnD&?cX%82UlVkNB<-!&(!czcq@-nV#~9JCr`|G-<@L;yBODjp+hU8yt5;ic zZ1uk`iJu)h%1HB1I%OzdvM)QOr^|@%vp1Cpw5M1P92tjQW^UC13Yk3+J?vZ0_cq4&q;l)_kUJj%SrWveIIE86OK$9maD4$^7P4c-x%Ig`8S+H8gLIw*8+ zpp?jiO0!T>k!jq^m`X$+uC<56B}|viZtSP>XHdta%7>-8wZrZjMflp;MC+-QxEkE0 znQMgO&6&$*x&atWoEM7fB33H5p}pH1v0iZU6$N*N^b@9Sklx9KT{?h+xN>`<+%%6E zpSAiLNj56*eESzsc&>d33^nvA_YyX#b*gS~C6+0y6WiLBA7Ry*IodeC?eFG-EK8y+ zToCOp-YKeXXmk}X_HFW6{vXz^#C=bdQw)8KX+z2y1C+-1&gE+=m`qb4hMuFkaFXF0 zz&wsp1ARNS1NkF04TWJ=3awHE7XWEPS-8*P?Df-`nu?B~I`pc1)lW>NQt*ht-UG;%=PadbB!D*J7Cc*$KN(Y3-*SH2AD zm763g?rSI&+(Kr)63$-N9?tnqWac^EDfcDL7ic!p-|!PRpq#-5s_eLem;-gFbDUF4 zL$q_-3vRSAJP%PMKC0-le5rd*I(+iOwUayl@QZxSp}@!dNH1wgciH^_8aW4jOF3+N z?y2U+&FHRrRjG0jRNj15RBy!=*DxOuVP!@F**XpyyRyk%PYu)nx5Qu`x7)?uzJT&p zxl6@6Jf8ee!lbWNb(KweJo%x3{jG2}any7SfQWMO@eo)wkl!}5*7)yeBXTZN9djZJM=k{1cy zB!di6DRD{4+8Uq);2dcvsMc0GRjjar%hwMmpA-+bX?U22rGOLFW@8PSWwaRPjMtB4 zIQO2_sEjR*P3@pX!k1S*p5W1V+Gg{nx>~ux-;HyNFo5po05!1CB+WV7(Ps9bcm3vE zx?ug4oz7_G1Pu;tK}O6IFCT~a@T$Xj^{<2)LaiKfjXcq2z%!N$hKoga@H}e7RkLx3 zX`Torv-NIczVg(}=OeepmQ6vDrq$#-(y0rr@jAzpbYk-)uGU)$))-i&5nEx=9M`_a zcyswrBrhdD>WQ>He$3+qWk-aWR2wGtQwz-PTGe8GyFYX@@)*5iG&txM-}Lh<6+YSh zLG)+o>dprDu6NrL?HJyyWHu3pNeEd-j*Ro0Clr|<5I0AJ{=vuJQ!^h~X5#k&b6&(H z>z@r*F~;jz{^F65BUH8Q_QEKs@Iysapr+_(|N5l$s9hMh=ks1pW_Jmnjru;#q3I$w3?jh@P;D_u5%XL{;C5QUd@ zK}X^TL_73rH=1ugYcJg?H>zGYFSl7Dup@+Pj2;j7_|Tr7lVtHd6RpF=F*7d@SM0fV zU>KIEfo2e>GP$jJZos6l3lz8(nZj$JDA6E72^2YhVh5n$mLQcKTK^6NA(!sk&CRk1 zdTDRoGP!n59;GO-hMhw$+Brk2Cd=xn51{lTtNBc!oqW7niGt;9$oo%04%I_n!lE;ohD(AuMqOF0m+rTo(bXLvwNA^8@JYS4$S$1D_EOE&2Ks#;=n$;)fgpq$RM0_F}eudf=$o9oJ9+BTBREKJV zY67>G`Y|ov`qCa1mSvb!A~mv~mKw-U6LgOnwuE|oH^R=(>=L7h#AhAXpjgbXG|%o& zkz?=t5m7pTZA8(pEhB7X4X|EIfobj-pu9Ar$g5$M$d$4>zMx>o*!d;eGQL`ELQ`Yh z$i~Rl!bIhYc!>$~>?U~Cciwwx0BFmc5!Zs!+wgZ^Ew$BO2%kl?XULU| zOw0)>bN-pRg>0aYS884x!m1|e-|D})nOBo8GUZ+~9rGqEf;Z`7Gp(uSE`EO=M)Exd z!no}8;+2zV?=Qx{Leeuga@bYl`~1?F!J(`0?=d!+2M8jX z52!}M*jFRK?UEq)Ly|6MTk6KPBhb_6s|#YRpVeK~7^Uy`Q}coDsMXWo4!ib?3CDuL(T*%@C%VmY^_52mk(MpUG6_ z&#coA<{iY(Ni(rqik%*Gza;}oF^trgErRl9Ro@>`c-|>qK0V=@c0(~x*Jg}hoG6e7 z^J`rGJK8waC>bI9!MLD#yg@~Env{~N?hg$GLYttElhec1iFvE!bXRs4R*Bu`EQ_q& zCN5W+06hI}HjIa+R4VjG|D^Yg1#OaZAIp14e^EkcEuR@JbW=0cUOmk3V2vd9SQzR& zr9?~j-zA!;ie5P0D~zjH5a2pn+B%)wYRHw8zF6S>e(Af<%i*;SxG%;GDAjg8%p4CK z{d?i%#pTD8nbs-;lC4CQ>w|ma<_&H`7 zcEDA~_X5t?{H^oMmhOnDl`H(L@bp*pytA%xDS89nD~8gWh~&y3*NJoSqas?|jj4tl zL-~gKly7oH_{^hHH&-rX5qleDu3nTstn_LB_nQjX6AqAVfk0mkWZg{$Mb)U(v#s4H z=ZrOyjY~5$wZ98$($<2Td^7ls&sF*r5mb_Q@6#43Q}GZSg#o+20XfwmopJ%#>sQF0?~y-Nqx>d|E1s>x)_ zW-Q*%F-+5VW&}t%M))R7+&hzA55_MeGxR&Ztae49r~t4$!^p5wSlL(%3bDndhJCq4 z3Ph4zO!GD7Zo|1ZP}7=ur%a2Md1jh>l<@7*=#7C3MrRR+yI}J6_-BDJF2H!74IoWJU`-Uj zBIKb69$a`4^2@$Uha%d%aVK%WJSXL#-1bAZMm6mjK-K|hUOwwce;i4wGUmh~$cgh| zq(?7_3`ePN{hcm7Cv<<00a7a`t|jm$jyM2Y?`SVe=mp0v_6kd~uSr~y%t!1Frm~NW z{Hkd*MF=%9I^wPvP4`-4iYc?F4hC|UuUc1 zfzX#WC=k#Y%>Tg2Isjt_a})RfRZC9D*4f7CKhAyvSSw+xp!g(%BE^FVLP1z32_g!X z!Y%h~Gxtu=;Ru>cOq+S6(!n>_l#?nVvBJ{Fp`?sHQpRYDblaYL?Y z#M7JQQ(2J{xGnOmTHRAtAsd(i^|^U5Iax@7DS*oIGYj$K?fM+G;{Hj8;@$ON_2OIz zN5@RgM-A>-1m-H4iDT}O$wKggL75c}rq(LL%j_Hn*se)BRk_hCGx5c@@@j>#LzofL z=52okHeMC1;=+}Ps}XucBL?{%8)dg_#U;Cz!3b0n=9SvXO#OSWr^DC{b;k*|@!&Bk zqIgi#v)JO%O7(ry^Vw{X0hUct*u2F{I?@J%q*3nK-EI94BD%DO@XGoLDua?M^saoCQq6#F?w!TPUqsqA zn8mF7oyqn@$5so%!l&*d*x{j$b=a~^6X;+!jv93!(UlIo&agy73XmmT<$~rPiLjiK zFDxQ8I>z6nkSu-+)2IUjWtFq+3zEKLv(p@^QIRXQ@9UV(` z*<=ThNQ9|=zt@N!@sW;Jz503`oaE^YyJ8mAsgqB!t$5D6SPyM{Bj{AsI%yY-_Pl4kq{X^+yl_su*2hq+ zt>>s3r@hRFmLB;ujdbW966&WV=liD)f;$K%MFFw)x}(5osDkf@0@|ujZ}Fg`f;LOD zO74s zBwQz5=H=Q0`(3*;m<_Rt>~kO@$5k7`UDreMtUCCezPj@X{xM#(J^=MBWI&JP8MgXX zbcqG16TLY^dm0t;tTa>ja@EW7+WC#7>K)cjkoJKKqP?1c4G_Q~m#KgJlN^2HrLGSD zaH;!W!R#OW0s;p5_lxEK6wF-zVc35#4CG$`QtmMjN$HwURYSj(ny#lt08C($ufkJ-b|9(ENMYaNkE^la+owG%_YSS zsH3w2&Nriyrx^OHY&8qynP~2Z5g-A(6dEvw;g?kQ}{zbS- zJ>VL&p)Kg#0`mf4l@sh4kQ%e~Ym@xJ2lE>q0EDkCendpsH2Ved z4BP`^#O5S>kjp>rtG``lJG2c6LTqH1mQ0NtoZ^7jZSlZ0c1W}9VDD|~V&<8MmxS7w zp=Rg0GcD)eYL6O(G2Zs!nhgvRU7on(=5JdCw+<7)ki}c4QZ4x0Q)HTR7<6f}r5BDB zv0K=%XVjvRO;GIwO-mS5(PFN|i`&UJGNcrA5Y?L=u{wjxgWB|u=r^3Gz2n9_Q=6MJ zXhnIh*SlAIWFD6m;pqV;x41w;~n~)lfY-9byUT&a*dIjJF<#X4k$A5r@;}haF(HE>rJSdTjG*+o-az%6I zrmb*B#mO1kWRm2pI-9+0Om+EF9U5-J>FGKE^EUl;RvObs{Kgb4ED%Fa4L~Q zK7uw9x;L!z7n50-+@LHY8MW-lj-)Hh;R|ckjhc;AMAp_|L&;)L17D*20lg4(T-A?u zH?^yA645H-36+nFP?sEQQf~MMan~`LY5idC0)4{>p>gO+0b!o^uR`;bT$9%7%!tfa z@+n5~zzvo(M;n$aSP-y9)DfDnCB%zGyrw@I4~ zbdK7Rs}_}eZogd3-9o|6^NHo>S%1qHv&bt`!1-rU!|pFtbqi%XHU(2Cu}|RQ5-j>nzsdet*-We#v33;&@2-|^F z>UBq9f*R|9S>)xnuFEGY$w5xaBQoy%%0ql3ZcYxqhZwm`k255J+{&FDorkf-c4862 zG{QN`qi*~`6*|=#xOhOj2OacCbiiiN86PuwB^lHN4X@wa4>aD!p}wcCTopl=f7oYu z!*9WC*0hvN3|VX)uUduwP)l1fXoW>1>V8RruVl)XMc}-9uLS{CKQD8Dgn}DX-1izf z^5DTGQZUi{0Q!`r^k=7H^wZ+p6ZWa=Ibo^gL->ie=x;ZB{F}_;i^;j?1bIbGT1QIM z;OO07HQPtvPob zy&jK1$9l2aCju@RAs7`QY0BW3En>AvsBYMJ19&idfXH3h$bB0h(XEhyLZ5JDxrB3w zp0eyc^vQ--bp8OoVaM{{GZkDo3K6&d8vXJt`=m`s^c8^4e7b>(a`c)q79G`&RclgT zx;(NNLw1ihI|%u6$65}HQp25gV0(9?(k(;C=_DmerWuqD-EqD3K<~oEbgX$#8 zh$A!9n$SXT+G5{G=vBD4nq#~qcTGEuSw|F~rq4_Gy$=Y#_Ox!uwh1|!l94j%Hp6QJ zU2nHLhUrb{F22sdh+muab};p`L0V_#a4PH`m>We%QN&R`as`0uq>q<_c}d;2X61Pa z#g5=Mwt`J+sVz?C(1zp7Ap={-Qdu^{dB!0*=dUU@|z8UaQuB$vd#tR-XGDq-M5Waza{CD*~X@1|(Sud(acYK=D;H`MR z1F)~$7nA%LkG}hG*|@zu_UPY+;1y|mYC^J@zsdewZ@4RJ;TH`wBa=N@=vHH0H4Nlk zs`PA~lj10#giJ)=bs^i~Q6ixh{Uh)86oeD`K8R6%(7WNUO8R6wZZF^Q|7+CBS$%4M z2=b4l|HmZxe;Kv@d%*gy%T}tCtsNJYQGDjL({0#lZJRaZ3l)p5(169u#3}dZ4eVPY zGBhfq@$1j7kVeV4$FvuHclqy_nI&;CpE~%%_ck+Fwu(2>q928_$9PY&Pdaygbbg-T z|6;%D41ivjzX}dOTpuw+(+}y&^m_lI1_prfAlxSXW&H&Y=0%%Zou6mm4I_gZ!{QZ? z984sQicQt665I0Ce8UHaGYt&(a_%$B_=)$>o_ufx3P^bZ{-JDWBfMFYOZ}Q$)knJl zr(yAlHxaeY*>CorBOP&kt@j_7{wjOgWWw1AO=`%1s%Q1hprlyDjj4L+utu{|vrZv7 zYPZ$AE=J|p$AND63`3?;`_i=+(Xs3v0oidjwiB5aw0ZyPHSy#`Ur?ZG<$qXqMkq@b zv;o^Z^x1X8jiWb?PeV*M82#E75aHCLYY-$WwBkmypyuDG9Kqcw5Rz?2!~#38x7MDx zz#v2CQE=8Sqr+d0mtSA`v`KO2aS(_T&l~%=dd?P?`V9P#xpW+1J(nFV%22W?q%BT@ zB7Ut#fg5R+e&$>_bE~h0qASXRZ$kW~0(T<1moz^XWU#BvFP-iyo6Q!V zXZGx_=uqy!gk?D;EX{aqj={x(a>0TQC7ZEXpTkL!VBjM5C3oGdxA=x!8V zDCAzJpdCE>X!$GJum;o*A0{@sx=};5hIYQU@S|kEF8ZdHR57h+iaU&#f46uI?U<#$ zegO(C`hd`=&vAqd9u_SaAVy~sf;dq{==m}btHMLmkHWiy{8&l-NTD=xDp%rbL9oZk z#TrWrE1$j*#PkA1thuCZ^!?`<3{vctZx7Rm#6%&Ny)zX4lm!uUkB1NRa0kqxNc=p; z;9RAh*v34*ohz_GIMeu09&>jQNmk}J4Tt%-!SuyFOyty8^rckhx+zZ5y~J3dn5zMq z2+XP7$6VvrTi!FvhLdGzS9)^~$KW@Tw|YFvX#rSR+V$Yl7-aFeRAf=vF?e{qRCxRV zPI)0dNfv)ROA47b2iw^Zu|yNg*?pbFnLzF^^t?$p3%xiqNFjVQL07nCVNbTQx;P*2 z?r|`Tt>3pT+4W>1xA#sK87i$siaRhJdd%dl6W0K~T<@0YVv$+BZxEHM1y%YabB})g z9n?^j1LX(%xMo`U8#z^n+sO`kymC<|v^|F@B|$F{Cb2oT`)Z^3M∓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�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%0DUB_Br9-J3nEr2|}S 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 literal 0 HcmV?d00001 diff --git a/vs code extension/CHANGELOG.md b/vs code extension/CHANGELOG.md index 4c110f41..b23756d5 100644 --- a/vs code extension/CHANGELOG.md +++ b/vs code extension/CHANGELOG.md @@ -1,6 +1,9 @@ # Change Log All notable changes to the "cobol-unit-test" extension will be documented in this file. Versioning according to SemVer: https://semver.org/ +## [0.4.0] 22.03.2023 +- Now using COBOL Check version 0.2.7 + ## [0.3.9] 02.01.2023 - Bugfix: Fixed an issue where the configure-command would remove a line from the configuration file, everytime you would overwrite an existing value. diff --git a/vs code extension/Cobol-check/bin/cobol-check-0.2.5.jar b/vs code extension/Cobol-check/bin/cobol-check-0.2.7.jar similarity index 64% rename from vs code extension/Cobol-check/bin/cobol-check-0.2.5.jar rename to vs code extension/Cobol-check/bin/cobol-check-0.2.7.jar index f9d37afdcef158b8ba475a4c9fad710e07dedfae..4d1a4966c1d63c079af7bce2fe95e362873781e0 100644 GIT binary patch delta 73761 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 delta 70132 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⁣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 Q0`od}5|E?`wg Date: Tue, 16 May 2023 15:42:13 +0200 Subject: [PATCH 034/180] Version 0.2.8 Signed-off-by: Brian Wildt --- CHANGELOG.md | 4 ++ README.md | 2 +- build.gradle | 2 +- build/distributions/cobol-check-0.2.8.zip | Bin 0 -> 218127 bytes .../services/cobolLogic/Interpreter.java | 3 + .../cobolcheck/InterpreterControllerTest.java | 20 +++++++ vs code extension/CHANGELOG.md | 3 + ...-check-0.2.7.jar => cobol-check-0.2.8.jar} | Bin 243274 -> 243281 bytes vs code extension/package.json | 2 +- zapp.json | 55 ++++++++++++++++++ 10 files changed, 88 insertions(+), 3 deletions(-) create mode 100644 build/distributions/cobol-check-0.2.8.zip rename vs code extension/Cobol-check/bin/{cobol-check-0.2.7.jar => cobol-check-0.2.8.jar} (95%) create mode 100644 zapp.json diff --git a/CHANGELOG.md b/CHANGELOG.md index 08163dae..ce8d91a2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Mock SQL tables - Mock batch file I/O +## \[0.2.8\] 2023-05-16 - Unreleased +### Implemented +- Proper handling of END-EXEC without trailing period in WORKING-STORAGE + ## \[0.2.7\] 2023-03-21 - Unreleased ### Implemented - EXPECT now properly handles variable subscription without a space delimiter (EXPECT varibable(idx) TO BE 1) diff --git a/README.md b/README.md index 297fc837..5ebd7908 100644 --- a/README.md +++ b/README.md @@ -26,7 +26,7 @@ As of March 2022 we could use help with: ## Downloads -Version 0.2.7 pre-release is available! +Version 0.2.8 pre-release is available! [//]: # (- Find the download on the project home page on the [Neo Pragma site](https://neopragma.com/projects/cobol-check/).) - Find distributions here: [Cobol Check Ditributions](https://github.com/openmainframeproject/cobol-check/blob/main/build/distributions). diff --git a/build.gradle b/build.gradle index 451532fb..c9d8fc82 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ plugins { id 'jacoco' } -def productVersion = '0.2.7' +def productVersion = '0.2.8' def productName = 'cobol-check' group = 'org.openmainframeproject' description = 'Unit testing framework for Cobol' diff --git a/build/distributions/cobol-check-0.2.8.zip b/build/distributions/cobol-check-0.2.8.zip new file mode 100644 index 0000000000000000000000000000000000000000..84e0150ef5f722a3cbc770d5758618e5f9032160 GIT binary patch literal 218127 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%0AMU_XDA{H!`MGLd5eqY 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 delta 6888 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 k0Mw9l&408;{2&|>Uc0(V>bKNlMI8vp Date: Tue, 16 May 2023 16:10:25 +0200 Subject: [PATCH 035/180] Delete zapp.json Zapp-file is a local file, and should not be uploaded ti GitHub Signed-off-by: dakaa16 --- zapp.json | 55 ------------------------------------------------------- 1 file changed, 55 deletions(-) delete mode 100644 zapp.json diff --git a/zapp.json b/zapp.json deleted file mode 100644 index e6703efd..00000000 --- a/zapp.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "name": "Bankdata", - "description": "This file is needed for fetching copybooks. If the file is missing, it will be recreated. If a newer version exists, the file will be overwritten. Version: 1.0.1", - "version": "3.0.0", - "author": { - "name": "Bankdata UDS" - }, - "propertyGroups": [ - { - "name": "localFolders", - "language": "cobol", - "libraries": [ - { - "name": "syslib", - "type": "local", - "locations": [ - "c:/Udvikler/cobol-check-distribute/cobol-check/src/main/cobol/batch", - "c:/Udvikler/cobol-check-distribute/cobol-check/src/main/cobol/cics", - "c:/Udvikler/cobol-check-distribute/cobol-check/src/main/cobol/generic", - "c:/Udvikler/cobol-check-distribute/cobol-check/build/dependencies/src/main/cobol/batch", - "c:/Udvikler/cobol-check-distribute/cobol-check/build/dependencies/src/main/cobol/cics", - "c:/Udvikler/cobol-check-distribute/cobol-check/build/dependencies/src/main/cobol/generic" - ] - } - ] - }, - { - "name": "hostDependencies", - "language": "cobol", - "libraries": [ - { - "name": "syslib", - "type": "mvs", - "locations": [ - "UBIBRW.BOX.SRC", - "UGRBOXP.TCIC.SRC", - "UGRBOXP.SCIC.SRC", - "UGRBOXP.MODTAG.SRC", - "UGRBOXP.AKTIV.SRC", - "UGRBOXP.DCAAKTIV.SRC", - "UGRBOXP.TCIC.DCLGENC2", - "UGRBOXP.SCIC.DCLGENC2", - "UGRBOXP.MODTAG.DCLGENC2", - "UGRBOXP.AKTIV.DCLGENC2", - "UGRBOXP.DCAAKTIV.DCLGENC2", - "UGRBOXP.TCIC.WSAGEN", - "UGRBOXP.SCIC.WSAGEN", - "UGRBOXP.AKTIV.WSAGEN", - "SYS1.SCEESAMP" - ] - } - ] - } - ] - } \ No newline at end of file From 649b3b36f0ca2c8df4b0768666d647efa74a4bda Mon Sep 17 00:00:00 2001 From: Bhavy Airi Date: Fri, 2 Jun 2023 16:08:09 +0530 Subject: [PATCH 036/180] Remove "build status" & "quality gate status" Signed-off-by: Bhavy Airi --- README.md | 3 --- 1 file changed, 3 deletions(-) diff --git a/README.md b/README.md index 297fc837..47107da0 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,4 @@ # Cobol Check - -[![Build Status](https://travis-ci.com/neopragma/cobol-check.svg?branch=main)](https://travis-ci.com/neopragma/cobol-check) [![Quality Gate Status](https://sonarcloud.io/api/project_badges/measure?project=neopragma_cobol-check&metric=alert_status)](https://sonarcloud.io/dashboard?id=neopragma_cobol-check) - Cobol Check provides fine-grained unit testing/checking for Cobol at the same conceptual level of detail as unit testing frameworks for other languages, such as Python, Ruby, C#, and Java. ## Feature overview From ce8fd83b032ba5bea1829b83d37fcca25901d421 Mon Sep 17 00:00:00 2001 From: Akash Kumar <91385321+OfficialAkashKumar@users.noreply.github.com> Date: Tue, 20 Jun 2023 18:39:26 +0530 Subject: [PATCH 037/180] minor refactoring Signed-off-by: Akash Kumar <91385321+OfficialAkashKumar@users.noreply.github.com> --- .../org/openmainframeproject/cobolcheck/services/Config.java | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/services/Config.java b/src/main/java/org/openmainframeproject/cobolcheck/services/Config.java index d32829ea..72cca470 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/services/Config.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/services/Config.java @@ -291,7 +291,6 @@ public static String getApplicationSourceDirectoryPathString() { DEFAULT_APPLICATION_SOURCE_DIRECTORY); if (sourceFolderContext != null){ pathString = PathHelper.endWithFileSeparator(sourceFolderContext) + pathString; - return StringHelper.adjustPathString(pathString); } return StringHelper.adjustPathString(pathString); } @@ -301,7 +300,6 @@ public static String getCopyBookSourceDirectoryPathString() { DEFAULT_COPY_SOURCE_DIRECTORY); if (sourceFolderContext != null){ pathString = PathHelper.endWithFileSeparator(sourceFolderContext) + pathString; - return StringHelper.adjustPathString(pathString); } return StringHelper.adjustPathString(pathString); } From 0ba86aada24c0ce13173e7befd8b0bd212b0ee43 Mon Sep 17 00:00:00 2001 From: issacto Date: Sun, 25 Jun 2023 22:08:37 +0800 Subject: [PATCH 038/180] add check option Signed-off-by: issacto --- .../cobolcheck/features/argumentHandler/ArgumentHandler.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/argumentHandler/ArgumentHandler.java b/src/main/java/org/openmainframeproject/cobolcheck/features/argumentHandler/ArgumentHandler.java index 5ab4ca59..e8526378 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/argumentHandler/ArgumentHandler.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/argumentHandler/ArgumentHandler.java @@ -142,6 +142,10 @@ private void processCommandLineArgumentArray(String[] args) { public void loadArgProgramPaths(){ String applicationSourceDirectory = Config.getApplicationSourceDirectoryPathString(); + if(options.isEmpty()){ + // return error when no program is passed + throw new PossibleInternalLogicErrorException(Messages.get("ERR005")); + } for (OptionKey optionKey : options.keySet()) { if (optionKey.shortKey.equals(Constants.PROGRAMS_OPTION) || optionKey.longKey.equals(Constants.PROGRAMS_OPTION)) { String programArgs = options.get(optionKey).argumentValue; From 59d1c5861ab7055214ea73017d480ba0445725c3 Mon Sep 17 00:00:00 2001 From: issacto Date: Sun, 25 Jun 2023 23:13:02 +0800 Subject: [PATCH 039/180] add java test Signed-off-by: issacto --- .../features/argumentHandler/ArgumentHandler.java | 2 +- .../cobolcheck/messages/messages.properties | 3 +++ .../cobolcheck/ArgumentHandlerTest.java | 11 +++++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/argumentHandler/ArgumentHandler.java b/src/main/java/org/openmainframeproject/cobolcheck/features/argumentHandler/ArgumentHandler.java index e8526378..ac29525c 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/argumentHandler/ArgumentHandler.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/argumentHandler/ArgumentHandler.java @@ -144,7 +144,7 @@ public void loadArgProgramPaths(){ String applicationSourceDirectory = Config.getApplicationSourceDirectoryPathString(); if(options.isEmpty()){ // return error when no program is passed - throw new PossibleInternalLogicErrorException(Messages.get("ERR005")); + throw new CommandLineArgumentException(Messages.get("ERR030")); } for (OptionKey optionKey : options.keySet()) { if (optionKey.shortKey.equals(Constants.PROGRAMS_OPTION) || optionKey.longKey.equals(Constants.PROGRAMS_OPTION)) { diff --git a/src/main/resources/org/openmainframeproject/cobolcheck/messages/messages.properties b/src/main/resources/org/openmainframeproject/cobolcheck/messages/messages.properties index c5c2046c..a3597639 100644 --- a/src/main/resources/org/openmainframeproject/cobolcheck/messages/messages.properties +++ b/src/main/resources/org/openmainframeproject/cobolcheck/messages/messages.properties @@ -30,6 +30,9 @@ ERR027 = ERR027: NumericFields.dataTypeOf() was called with empty fieldName. ERR028 = ERR028: NumericFields.setDataTypeOf() was called with empty fieldName. ERR029 = ERR029: NumericFields.setDataTypeOf() was called with null dataType. +ERR030 = ERR030: Command line missing program argument. + + WRN001 = WRN001: No test suite directory for program %1$s was found under directory %2$s. WRN002 = WRN002: No test suite files were found under directory %1$s. WRN003 = WRN003: DirectoryNameMatcher caught IOException on file %1$s. diff --git a/src/test/java/org/openmainframeproject/cobolcheck/ArgumentHandlerTest.java b/src/test/java/org/openmainframeproject/cobolcheck/ArgumentHandlerTest.java index 75f2ef5b..354bcf97 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/ArgumentHandlerTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/ArgumentHandlerTest.java @@ -133,4 +133,15 @@ public void it_throws_when_no_value_is_passed_for_the_last_argument_and_it_requi }); } + @Test + public void it_throws_when_program_argument_is_not_present() { + Throwable ex = assertThrows(CommandLineArgumentException.class, () -> { + ArgumentHandler argumentHandler = new ArgumentHandler(new String[] { }, + optionSpec); + argumentHandler.loadArgProgramPaths(); + }); + assertEquals("ERR030: Command line missing program argument.", + ex.getMessage()); + } + } From a72c45e05909442eeb4770a7fdc8ac8a2276e262 Mon Sep 17 00:00:00 2001 From: issacto Date: Sun, 25 Jun 2023 23:19:22 +0800 Subject: [PATCH 040/180] change test name Signed-off-by: issacto --- .../cobolcheck/messages/messages.properties | 2 +- .../openmainframeproject/cobolcheck/ArgumentHandlerTest.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/resources/org/openmainframeproject/cobolcheck/messages/messages.properties b/src/main/resources/org/openmainframeproject/cobolcheck/messages/messages.properties index a3597639..40705dca 100644 --- a/src/main/resources/org/openmainframeproject/cobolcheck/messages/messages.properties +++ b/src/main/resources/org/openmainframeproject/cobolcheck/messages/messages.properties @@ -30,7 +30,7 @@ ERR027 = ERR027: NumericFields.dataTypeOf() was called with empty fieldName. ERR028 = ERR028: NumericFields.setDataTypeOf() was called with empty fieldName. ERR029 = ERR029: NumericFields.setDataTypeOf() was called with null dataType. -ERR030 = ERR030: Command line missing program argument. +ERR030 = ERR030: Command line missing program argument '-p programName' . WRN001 = WRN001: No test suite directory for program %1$s was found under directory %2$s. diff --git a/src/test/java/org/openmainframeproject/cobolcheck/ArgumentHandlerTest.java b/src/test/java/org/openmainframeproject/cobolcheck/ArgumentHandlerTest.java index 354bcf97..dbdc9151 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/ArgumentHandlerTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/ArgumentHandlerTest.java @@ -140,7 +140,7 @@ public void it_throws_when_program_argument_is_not_present() { optionSpec); argumentHandler.loadArgProgramPaths(); }); - assertEquals("ERR030: Command line missing program argument.", + assertEquals("ERR030: Command line missing program argument '-p programName' .", ex.getMessage()); } From 0a0476f1d1e2be58e0da0ef98c56f5ef60cc09ac Mon Sep 17 00:00:00 2001 From: issacto Date: Tue, 27 Jun 2023 17:38:27 +0800 Subject: [PATCH 041/180] fix arguments bug Signed-off-by: issacto --- .../features/argumentHandler/ArgumentHandler.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/argumentHandler/ArgumentHandler.java b/src/main/java/org/openmainframeproject/cobolcheck/features/argumentHandler/ArgumentHandler.java index ac29525c..3a006a80 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/argumentHandler/ArgumentHandler.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/argumentHandler/ArgumentHandler.java @@ -142,10 +142,7 @@ private void processCommandLineArgumentArray(String[] args) { public void loadArgProgramPaths(){ String applicationSourceDirectory = Config.getApplicationSourceDirectoryPathString(); - if(options.isEmpty()){ - // return error when no program is passed - throw new CommandLineArgumentException(Messages.get("ERR030")); - } + boolean isProgramSpecified = false; for (OptionKey optionKey : options.keySet()) { if (optionKey.shortKey.equals(Constants.PROGRAMS_OPTION) || optionKey.longKey.equals(Constants.PROGRAMS_OPTION)) { String programArgs = options.get(optionKey).argumentValue; @@ -156,8 +153,13 @@ public void loadArgProgramPaths(){ newValue += "|"; } options.get(optionKey).argumentValue = newValue.substring(0, newValue.length()-1); + if(!programArgs.equals("")) isProgramSpecified = true; } } + if(!isProgramSpecified){ + // return error when no program is passed + throw new CommandLineArgumentException(Messages.get("ERR030")); + } } private OptionValue lookupOption(String requestedOption) { From 82c37af86ab94367f0f3f39d9da21ac10599b397 Mon Sep 17 00:00:00 2001 From: issacto Date: Tue, 27 Jun 2023 22:00:09 +0800 Subject: [PATCH 042/180] add test case Signed-off-by: issacto --- .../cobolcheck/ArgumentHandlerTest.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/test/java/org/openmainframeproject/cobolcheck/ArgumentHandlerTest.java b/src/test/java/org/openmainframeproject/cobolcheck/ArgumentHandlerTest.java index dbdc9151..e2deef49 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/ArgumentHandlerTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/ArgumentHandlerTest.java @@ -144,4 +144,15 @@ public void it_throws_when_program_argument_is_not_present() { ex.getMessage()); } + @Test + public void it_throws_when_program_argument_is_not_presen_and_has_other_argument() { + Throwable ex = assertThrows(CommandLineArgumentException.class, () -> { + ArgumentHandler argumentHandler = new ArgumentHandler(new String[] {"-c", "config.properties" }, + optionSpec); + argumentHandler.loadArgProgramPaths(); + }); + assertEquals("ERR030: Command line missing program argument '-p programName' .", + ex.getMessage()); + } + } From c9076418ab72eec9bbd095defed46b9574810a99 Mon Sep 17 00:00:00 2001 From: issacto Date: Fri, 23 Jun 2023 01:29:21 +0800 Subject: [PATCH 043/180] Add arguments without commas Signed-off-by: issacto --- .../testSuiteParser/TestSuiteParser.java | 43 +++++++++++++++---- 1 file changed, 35 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index 8e661c89..d463a1be 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -76,6 +76,8 @@ public class TestSuiteParser { private int testCaseNumber = 0; private boolean expectNumericCompare; + private boolean previousLineContainsArgument = false; + // Lines inserted into the test program private static final String COBOL_PERFORM_INITIALIZE = " PERFORM %sINITIALIZE"; private static final String COBOL_DISPLAY_TESTSUITE = " DISPLAY \"TESTSUITE:\""; @@ -176,6 +178,7 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, numericFields = numericFieldsList; String testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); while (testSuiteToken != null) { + if (!testSuiteToken.startsWith(Constants.QUOTE) && !testSuiteToken.startsWith(Constants.APOSTROPHE)) { testSuiteToken = testSuiteToken.toUpperCase(Locale.ROOT); } @@ -184,6 +187,7 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); continue; } + boolean cobolTokenIsFieldName = (expectInProgress || expectQualifiedName || expectMockIdentifier || (expectMockArguments && !expectUsing)); @@ -195,11 +199,34 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, // to next token expectMockArguments = false; expectUsing = false; + // System.out.println("TESTING"); + // System.out.println(keyword.keywordAction()); + // System.out.println(testSuiteToken); handleEndOfMockStatement(testSuiteReader, testSuiteToken, false); testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); + System.out.println(testSuiteToken); + continue; + } + + if (!verifyInProgress && expectMockArguments + && CobolVerbs.isStartOrEndCobolVerb(testSuiteToken)) { + // In this case we expected cobol verbs and stop counting arguments + // update the keyword as fieldname was assumed + keyword = Keywords.getKeywordFor(testSuiteToken, false); + expectMockArguments = false; + expectUsing = false; + // System.out.println("TESTING"); + // System.out.println(testSuiteToken); + // System.out.println(keyword.keywordAction()); + ignoreCobolStatementAndFieldNameKeyAction = true; + handleEndOfMockStatement(testSuiteReader, testSuiteToken, previousLineContainsArgument); + testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); + previousLineContainsArgument=false; continue; } + + if (!testSuiteErrorLog.checkExpectedTokenSyntax(keyword, testSuiteToken, currentTestSuiteRealFile, fileLineNumber, fileLineIndexNumber)) { testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); @@ -318,6 +345,8 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, addTestCodeForAssertion(parsedTestSuiteLines, numericFields); toBeInProgress = false; } + + if (expectMockIdentifier) { expectMockIdentifier = false; ignoreCobolStatementAndFieldNameKeyAction = true; @@ -345,6 +374,7 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, if (!expectUsing) { currentLineContainsArgument = true; ignoreCobolStatementAndFieldNameKeyAction = true; + if (verifyInProgress) currentVerify.addArgument(getCallArgument(currentMockArgument, testSuiteToken)); else @@ -354,13 +384,7 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, if (testSuiteToken.endsWith(",")) break; } - // Contains no arguments or all arguments has been added - expectMockArguments = false; - expectUsing = false; - if (!verifyInProgress) { - ignoreCobolStatementAndFieldNameKeyAction = true; - handleEndOfMockStatement(testSuiteReader, testSuiteToken, currentLineContainsArgument); - } + previousLineContainsArgument = currentLineContainsArgument; } if (verifyInProgress) { @@ -374,6 +398,8 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, break; case Constants.ALPHANUMERIC_LITERAL_KEYWORD: + + if (expectTestsuiteName) { expectTestsuiteName = false; currentTestSuiteName = testSuiteToken; @@ -618,7 +644,7 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, break; } if (CobolVerbs.isStartOrEndCobolVerb(testSuiteToken)) { - if (cobolStatementInProgress) { + if ( cobolStatementInProgress) { addUserWrittenCobolStatement(parsedTestSuiteLines); initializeCobolStatement(); } @@ -830,6 +856,7 @@ private String getCallArgument(String referenceType, String value) { outPut = ("REFERENCE " + value.replace(",", "")); else outPut = (referenceType + " " + value.replace(",", "")); + return outPut; } From c738f6868c82b4900e03d5f94cd587f3ef371785 Mon Sep 17 00:00:00 2001 From: issacto Date: Fri, 23 Jun 2023 10:02:46 +0800 Subject: [PATCH 044/180] add ignoreStatement Signed-off-by: issacto --- .../features/testSuiteParser/TestSuiteParser.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index d463a1be..714e7e81 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -210,7 +210,7 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, if (!verifyInProgress && expectMockArguments && CobolVerbs.isStartOrEndCobolVerb(testSuiteToken)) { - // In this case we expected cobol verbs and stop counting arguments + // NEW: In this case we expected cobol verbs and stop counting arguments // update the keyword as fieldname was assumed keyword = Keywords.getKeywordFor(testSuiteToken, false); expectMockArguments = false; @@ -218,7 +218,6 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, // System.out.println("TESTING"); // System.out.println(testSuiteToken); // System.out.println(keyword.keywordAction()); - ignoreCobolStatementAndFieldNameKeyAction = true; handleEndOfMockStatement(testSuiteReader, testSuiteToken, previousLineContainsArgument); testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); previousLineContainsArgument=false; @@ -384,6 +383,9 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, if (testSuiteToken.endsWith(",")) break; } + if (!verifyInProgress) { + ignoreCobolStatementAndFieldNameKeyAction = true; + } previousLineContainsArgument = currentLineContainsArgument; } From 6d29d78ba210395a545d3fa32c944712ca37298c Mon Sep 17 00:00:00 2001 From: issacto Date: Fri, 23 Jun 2023 10:13:18 +0800 Subject: [PATCH 045/180] add ignoreStatement Signed-off-by: issacto --- .../cobolcheck/features/testSuiteParser/TestSuiteParser.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index 714e7e81..7740d0c7 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -218,6 +218,7 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, // System.out.println("TESTING"); // System.out.println(testSuiteToken); // System.out.println(keyword.keywordAction()); + ignoreCobolStatementAndFieldNameKeyAction=true; handleEndOfMockStatement(testSuiteReader, testSuiteToken, previousLineContainsArgument); testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); previousLineContainsArgument=false; @@ -383,9 +384,6 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, if (testSuiteToken.endsWith(",")) break; } - if (!verifyInProgress) { - ignoreCobolStatementAndFieldNameKeyAction = true; - } previousLineContainsArgument = currentLineContainsArgument; } From 11a6346ce50a22996f850a94f4f29f4c4f4df8a5 Mon Sep 17 00:00:00 2001 From: issacto Date: Fri, 23 Jun 2023 15:10:12 +0800 Subject: [PATCH 046/180] fix error Signed-off-by: issacto --- .../testSuiteParser/TestSuiteParser.java | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index 7740d0c7..7009242d 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -76,8 +76,6 @@ public class TestSuiteParser { private int testCaseNumber = 0; private boolean expectNumericCompare; - private boolean previousLineContainsArgument = false; - // Lines inserted into the test program private static final String COBOL_PERFORM_INITIALIZE = " PERFORM %sINITIALIZE"; private static final String COBOL_DISPLAY_TESTSUITE = " DISPLAY \"TESTSUITE:\""; @@ -188,23 +186,25 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, continue; } + boolean cobolTokenIsFieldName = (expectInProgress || expectQualifiedName || expectMockIdentifier || (expectMockArguments && !expectUsing)); Keyword keyword = Keywords.getKeywordFor(testSuiteToken, cobolTokenIsFieldName); + + System.out.println("TESTING"); + System.out.println(keyword.keywordAction()); + System.out.println(testSuiteToken); + if (!verifyInProgress && expectUsing && expectMockArguments && !keyword.value().equals(Constants.USING_TOKEN)) { // In this case we expected mock arguments, but got none. We end the mock and go // to next token expectMockArguments = false; expectUsing = false; - // System.out.println("TESTING"); - // System.out.println(keyword.keywordAction()); - // System.out.println(testSuiteToken); handleEndOfMockStatement(testSuiteReader, testSuiteToken, false); testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); - System.out.println(testSuiteToken); continue; } @@ -212,16 +212,12 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, && CobolVerbs.isStartOrEndCobolVerb(testSuiteToken)) { // NEW: In this case we expected cobol verbs and stop counting arguments // update the keyword as fieldname was assumed - keyword = Keywords.getKeywordFor(testSuiteToken, false); + // keyword = Keywords.getKeywordFor(testSuiteToken, false); + System.out.println("Appeared"); expectMockArguments = false; expectUsing = false; - // System.out.println("TESTING"); - // System.out.println(testSuiteToken); - // System.out.println(keyword.keywordAction()); - ignoreCobolStatementAndFieldNameKeyAction=true; - handleEndOfMockStatement(testSuiteReader, testSuiteToken, previousLineContainsArgument); + handleEndOfMockStatement(testSuiteReader, testSuiteToken, false); testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); - previousLineContainsArgument=false; continue; } @@ -384,7 +380,10 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, if (testSuiteToken.endsWith(",")) break; } - previousLineContainsArgument = currentLineContainsArgument; + expectUsing = false; + if (!verifyInProgress) { + ignoreCobolStatementAndFieldNameKeyAction = true; + } } if (verifyInProgress) { From a2e5f5ec918ad04bbd646f3ccc9ee65b7a26d8aa Mon Sep 17 00:00:00 2001 From: issacto Date: Fri, 23 Jun 2023 15:15:08 +0800 Subject: [PATCH 047/180] clean Signed-off-by: issacto --- .../features/testSuiteParser/TestSuiteParser.java | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index 7009242d..e1b5be8c 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -192,11 +192,6 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, || (expectMockArguments && !expectUsing)); Keyword keyword = Keywords.getKeywordFor(testSuiteToken, cobolTokenIsFieldName); - - System.out.println("TESTING"); - System.out.println(keyword.keywordAction()); - System.out.println(testSuiteToken); - if (!verifyInProgress && expectUsing && expectMockArguments && !keyword.value().equals(Constants.USING_TOKEN)) { // In this case we expected mock arguments, but got none. We end the mock and go @@ -213,9 +208,7 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, // NEW: In this case we expected cobol verbs and stop counting arguments // update the keyword as fieldname was assumed // keyword = Keywords.getKeywordFor(testSuiteToken, false); - System.out.println("Appeared"); expectMockArguments = false; - expectUsing = false; handleEndOfMockStatement(testSuiteReader, testSuiteToken, false); testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); continue; From cf5aaa2df360fb33e8f6114cea4f5dd917dd3ef7 Mon Sep 17 00:00:00 2001 From: issacto Date: Fri, 23 Jun 2023 15:42:54 +0800 Subject: [PATCH 048/180] clean Signed-off-by: issacto --- .../features/testSuiteParser/TestSuiteParser.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index e1b5be8c..c22d8b58 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -203,12 +203,13 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, continue; } - if (!verifyInProgress && expectMockArguments + if (expectMockArguments && CobolVerbs.isStartOrEndCobolVerb(testSuiteToken)) { // NEW: In this case we expected cobol verbs and stop counting arguments // update the keyword as fieldname was assumed // keyword = Keywords.getKeywordFor(testSuiteToken, false); expectMockArguments = false; + expectUsing = false; handleEndOfMockStatement(testSuiteReader, testSuiteToken, false); testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); continue; @@ -370,8 +371,7 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, currentMock.addArgument(getCallArgument(currentMockArgument, testSuiteToken)); currentMockArgument = ""; - if (testSuiteToken.endsWith(",")) - break; + } expectUsing = false; if (!verifyInProgress) { From b27755e8bcaaed47555654335fc97d4339b2609d Mon Sep 17 00:00:00 2001 From: issacto Date: Fri, 23 Jun 2023 15:58:15 +0800 Subject: [PATCH 049/180] clean Signed-off-by: issacto --- .../cobolcheck/features/testSuiteParser/TestSuiteParser.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index c22d8b58..7aee8a65 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -373,10 +373,11 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, currentMockArgument = ""; } - expectUsing = false; - if (!verifyInProgress) { + + if (expectUsing && !verifyInProgress) { ignoreCobolStatementAndFieldNameKeyAction = true; } + expectUsing = false; } if (verifyInProgress) { From 6aa8ee9f98529db1bcd57f3967c46552c0934e0a Mon Sep 17 00:00:00 2001 From: issacto Date: Fri, 23 Jun 2023 16:04:56 +0800 Subject: [PATCH 050/180] fix testing error Signed-off-by: issacto --- .../cobolcheck/features/testSuiteParser/TestSuiteParser.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index 7aee8a65..fb84db46 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -374,10 +374,11 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, } - if (expectUsing && !verifyInProgress) { + if (!currentLineContainsArgument && !verifyInProgress) { ignoreCobolStatementAndFieldNameKeyAction = true; + expectUsing = false; } - expectUsing = false; + } if (verifyInProgress) { From 9c6075a1320c9933ecf4869407711585c8de63ea Mon Sep 17 00:00:00 2001 From: issacto Date: Fri, 23 Jun 2023 16:15:11 +0800 Subject: [PATCH 051/180] fix testing error Signed-off-by: issacto --- .../features/testSuiteParser/TestSuiteParser.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index fb84db46..8783dc8c 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -372,11 +372,15 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, currentMockArgument = ""; - } - - if (!currentLineContainsArgument && !verifyInProgress) { - ignoreCobolStatementAndFieldNameKeyAction = true; + }else{ expectUsing = false; + expectMockArguments = false; + if (expectUsing && !verifyInProgress) { + System.out.println("TRIGGERED"); + ignoreCobolStatementAndFieldNameKeyAction = true; + handleEndOfMockStatement(testSuiteReader, testSuiteToken, currentLineContainsArgument); + } + } } From 257f55d66a51a35b01e68bce9b0bf7e9396dcc29 Mon Sep 17 00:00:00 2001 From: issacto Date: Fri, 23 Jun 2023 16:20:15 +0800 Subject: [PATCH 052/180] fix testing error Signed-off-by: issacto --- .../cobolcheck/features/testSuiteParser/TestSuiteParser.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index 8783dc8c..5432a31e 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -375,8 +375,7 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, }else{ expectUsing = false; expectMockArguments = false; - if (expectUsing && !verifyInProgress) { - System.out.println("TRIGGERED"); + if (!verifyInProgress) { ignoreCobolStatementAndFieldNameKeyAction = true; handleEndOfMockStatement(testSuiteReader, testSuiteToken, currentLineContainsArgument); } From d9ca4a2d82c121fe37c3a9791177069db0b42b04 Mon Sep 17 00:00:00 2001 From: issacto Date: Sat, 24 Jun 2023 23:00:41 +0800 Subject: [PATCH 053/180] fix java test error Signed-off-by: issacto --- .../features/testSuiteParser/TestSuiteParser.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index 5432a31e..c88a47de 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -203,15 +203,20 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, continue; } - if (expectMockArguments - && CobolVerbs.isStartOrEndCobolVerb(testSuiteToken)) { + if (expectMockArguments && !expectUsing + && (CobolVerbs.isCobolVerb(testSuiteToken)|| testSuiteToken.equals("END-MOCK"))) { // NEW: In this case we expected cobol verbs and stop counting arguments // update the keyword as fieldname was assumed // keyword = Keywords.getKeywordFor(testSuiteToken, false); expectMockArguments = false; expectUsing = false; - handleEndOfMockStatement(testSuiteReader, testSuiteToken, false); - testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); + if (!verifyInProgress) { + ignoreCobolStatementAndFieldNameKeyAction = true; + handleEndOfMockStatement(testSuiteReader, testSuiteToken, false); + } + if(testSuiteToken.equals("END-MOCK") ){ + testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); + } continue; } From b59b7e6a682910ac012cc800fdf97599ffd4511e Mon Sep 17 00:00:00 2001 From: issacto Date: Thu, 29 Jun 2023 18:26:46 +0800 Subject: [PATCH 054/180] update test case Signed-off-by: issacto --- .../java/org/openmainframeproject/cobolcheck/MockingTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java b/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java index 817d51ae..4de87a68 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java @@ -260,7 +260,6 @@ public void call_mock_gets_correct_lines_and_ignores_end_call() throws IOExcepti String str7 = " END-MOCK"; List expected = new ArrayList<>(); - expected.add(" "); expected.add(" MOVE \"something\" TO this"); expected.add(" MOVE \"something else\" TO other"); From 8017c5cacbfc24b84a6223da1c32de3a3593ac76 Mon Sep 17 00:00:00 2001 From: issacto Date: Mon, 3 Jul 2023 01:11:56 +0800 Subject: [PATCH 055/180] update test case Signed-off-by: issacto --- .../cobolcheck/TestSuiteErrorLogTest.java | 48 ++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java index abc96f35..26a8bbc9 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java @@ -296,7 +296,7 @@ public void it_catches_unexpected_keyword_at_the_end_of_mock_context() { } @Test - public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_arguments() { + public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_arguments_1() { testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); testSuite.append(" TESTCASE \"Name of test case\""+ Constants.NEWLINE); testSuite.append(" MOCK CALL 'value' USING BY CONTENT VALUE-1, VALUE-2 ONCE END-MOCK"+ Constants.NEWLINE); @@ -315,6 +315,28 @@ public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_argume assertEquals(expectedResult, actualResult); } + @Test + public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_arguments_2() { + testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); + testSuite.append(" TESTCASE \"Name of test case\""+ Constants.NEWLINE); + testSuite.append(" MOCK CALL 'value' USING BY CONTENT VALUE-1, VALUE-2 VERIFY END-MOCK"+ Constants.NEWLINE); + + String expectedResult = ""; + expectedResult += "SYNTAX ERROR in file: null:2:13:" + Constants.NEWLINE; + expectedResult += "Unexpected token on line 2, index 13:" + Constants.NEWLINE; + expectedResult += "Cannot have Cobol Check keyword inside a MOCK block" + Constants.NEWLINE+ Constants.NEWLINE; + + assertThrows(TestSuiteSyntaxException.class, () -> { + testSuiteParser.getParsedTestSuiteLines(new BufferedReader(new StringReader(testSuite.toString())), + numericFields); + }); + + String actualResult = testSuiteErrorLog.getErrorMessages(); + System.out.println("actualResult: "); + System.out.println(actualResult); + assertEquals(expectedResult, actualResult); + } + @Test public void it_catches_unexpected_keyword_in_an_expect_context() { testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); @@ -392,6 +414,30 @@ public void it_catches_unexpected_keyword_after_verify() { assertEquals(expectedResult, actualResult); } + @Test + public void it_catches_unexpected_keyword_after_verify_() { + testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); + testSuite.append(" TESTCASE \"Name of test case\""+ Constants.NEWLINE); + testSuite.append(" MOCK CALL 'PROG3' END-MOCK"+ Constants.NEWLINE); + testSuite.append(" VERIFY CALL 'PROG3' HAPPENED ONCE"+ Constants.NEWLINE); + testSuite.append(" BEFORE EACH"+ Constants.NEWLINE); + + String expectedResult = ""; + expectedResult += "SYNTAX ERROR in file: null:5:8:" + Constants.NEWLINE; + expectedResult += "Unexpected token on line 5, index 8:" + Constants.NEWLINE; + expectedResult += "Following classified as " + Constants.NEWLINE; + expectedResult += "Expected classification: [cobol-token, TESTSUITE, TESTCASE, MOCK, VERIFY, EXPECT]" + Constants.NEWLINE; + expectedResult += "Got classified as " + Constants.NEWLINE + Constants.NEWLINE; + + assertThrows(TestSuiteSyntaxException.class, () -> { + testSuiteParser.getParsedTestSuiteLines(new BufferedReader(new StringReader(testSuite.toString())), + numericFields); + }); + + String actualResult = testSuiteErrorLog.getErrorMessages(); + assertEquals(expectedResult, actualResult); + } + @Test public void it_catches_type_mismatch_of_numeric_and_alphanumeric_for_explicit_numeric_in_unit_test() { testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); From 06681a98db0a5dd74a949937a1031cbce509121d Mon Sep 17 00:00:00 2001 From: issacto Date: Mon, 3 Jul 2023 18:03:12 +0800 Subject: [PATCH 056/180] update test result Signed-off-by: issacto --- .../cobolcheck/TestSuiteErrorLogTest.java | 28 +++++++++++++------ 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java index 26a8bbc9..9f8c2518 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java @@ -302,9 +302,16 @@ public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_argume testSuite.append(" MOCK CALL 'value' USING BY CONTENT VALUE-1, VALUE-2 ONCE END-MOCK"+ Constants.NEWLINE); String expectedResult = ""; - expectedResult += "SYNTAX ERROR in file: null:2:13:" + Constants.NEWLINE; - expectedResult += "Unexpected token on line 2, index 13:" + Constants.NEWLINE; - expectedResult += "Cannot have Cobol Check keyword inside a MOCK block" + Constants.NEWLINE+ Constants.NEWLINE; + expectedResult += "SYNTAX ERROR in file: null:3:60:" + Constants.NEWLINE; + expectedResult += "Unexpected token on line 3, index 60:" + Constants.NEWLINE; + expectedResult += "Following classified as " + Constants.NEWLINE; + expectedResult += "Expected classification in the context of MOCK: [END-MOCK, fieldname, BY REFERENCE, BY CONTENT, BY VALUE, USING]" + Constants.NEWLINE; + expectedResult += "Got < ONCE> classified as < ONCE>" + Constants.NEWLINE+ Constants.NEWLINE; + expectedResult += "SYNTAX ERROR in file: null:3:11:" + Constants.NEWLINE; + expectedResult += "Unexpected token on line 3, index 11:" + Constants.NEWLINE; + expectedResult += "Following classified as " + Constants.NEWLINE; + expectedResult += "Expected classification in the context of MOCK: []" + Constants.NEWLINE; + expectedResult += "Got classified as " + Constants.NEWLINE+ Constants.NEWLINE; assertThrows(TestSuiteSyntaxException.class, () -> { testSuiteParser.getParsedTestSuiteLines(new BufferedReader(new StringReader(testSuite.toString())), @@ -322,9 +329,16 @@ public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_argume testSuite.append(" MOCK CALL 'value' USING BY CONTENT VALUE-1, VALUE-2 VERIFY END-MOCK"+ Constants.NEWLINE); String expectedResult = ""; - expectedResult += "SYNTAX ERROR in file: null:2:13:" + Constants.NEWLINE; - expectedResult += "Unexpected token on line 2, index 13:" + Constants.NEWLINE; - expectedResult += "Cannot have Cobol Check keyword inside a MOCK block" + Constants.NEWLINE+ Constants.NEWLINE; + expectedResult += "SYNTAX ERROR in file: null:3:60:" + Constants.NEWLINE; + expectedResult += "Unexpected token on line 3, index 60:" + Constants.NEWLINE; + expectedResult += "Following classified as " + Constants.NEWLINE; + expectedResult += "Expected classification in the context of MOCK: [END-MOCK, fieldname, BY REFERENCE, BY CONTENT, BY VALUE, USING]" + Constants.NEWLINE; + expectedResult += "Got classified as " + Constants.NEWLINE+ Constants.NEWLINE; + expectedResult += "SYNTAX ERROR in file: null:3:11:" + Constants.NEWLINE; + expectedResult += "Unexpected token on line 3, index 11:" + Constants.NEWLINE; + expectedResult += "Following classified as " + Constants.NEWLINE; + expectedResult += "Expected classification in the context of MOCK: []" + Constants.NEWLINE; + expectedResult += "Got classified as " + Constants.NEWLINE+ Constants.NEWLINE; assertThrows(TestSuiteSyntaxException.class, () -> { testSuiteParser.getParsedTestSuiteLines(new BufferedReader(new StringReader(testSuite.toString())), @@ -332,8 +346,6 @@ public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_argume }); String actualResult = testSuiteErrorLog.getErrorMessages(); - System.out.println("actualResult: "); - System.out.println(actualResult); assertEquals(expectedResult, actualResult); } From 6d8e77fb9f4521a311d5020b31c6571db2072c8c Mon Sep 17 00:00:00 2001 From: issacto Date: Tue, 4 Jul 2023 18:53:22 +0800 Subject: [PATCH 057/180] clean comment Signed-off-by: issacto --- .../cobolcheck/features/testSuiteParser/TestSuiteParser.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index c88a47de..6b8ae6c9 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -205,9 +205,8 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, if (expectMockArguments && !expectUsing && (CobolVerbs.isCobolVerb(testSuiteToken)|| testSuiteToken.equals("END-MOCK"))) { - // NEW: In this case we expected cobol verbs and stop counting arguments + // In this case we expected cobol verbs and stop mock arguments // update the keyword as fieldname was assumed - // keyword = Keywords.getKeywordFor(testSuiteToken, false); expectMockArguments = false; expectUsing = false; if (!verifyInProgress) { From fff0f110b16ad6fb9da001163901a72fa812889b Mon Sep 17 00:00:00 2001 From: issacto Date: Wed, 5 Jul 2023 12:37:27 +0800 Subject: [PATCH 058/180] add test cases Signed-off-by: issacto --- .../cobolcheck/MockingTest.java | 40 +++++++++++++ .../cobolcheck/TestSuiteErrorLogTest.java | 58 ++++++++++++++++++- 2 files changed, 96 insertions(+), 2 deletions(-) diff --git a/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java b/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java index 4de87a68..d0eb42fb 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java @@ -295,6 +295,46 @@ public void call_mock_gets_correct_arguments() throws IOException { assertEquals(expected, mockRepository.getMocks().get(0).getArguments()); } + @Test + public void call_mock_gets_correct_arguments_with_commas() throws IOException { + String str1 = " TESTSUITE \"Name of test suite\""; + String str2 = " TESTCASE \"Name of test case\""; + String str3 = " MOCK CALL 'prog1' USING BY CONTENT VALUE-1 VALUE-2 VALUE-3"; + String str4 = " MOVE \"something\" TO this"; + String str5 = " MOVE \"something else\" TO other"; + String str6 = " END-MOCK"; + + List expected = new ArrayList<>(); + expected.add("CONTENT VALUE-1"); + expected.add("REFERENCE VALUE-2"); + expected.add("REFERENCE VALUE-3"); + + Mockito.when(mockedReader.readLine()).thenReturn(str1, str2, str3, str4, str5, str6, null); + + testSuiteParser.getParsedTestSuiteLines(mockedReader, numericFields); + assertEquals(expected, mockRepository.getMocks().get(0).getArguments()); + } + + @Test + public void call_mock_gets_correct_arguments_with_one_comma() throws IOException { + String str1 = " TESTSUITE \"Name of test suite\""; + String str2 = " TESTCASE \"Name of test case\""; + String str3 = " MOCK CALL 'prog1' USING BY CONTENT VALUE-1 VALUE-2, VALUE-3"; + String str4 = " MOVE \"something\" TO this"; + String str5 = " MOVE \"something else\" TO other"; + String str6 = " END-MOCK"; + + List expected = new ArrayList<>(); + expected.add("CONTENT VALUE-1"); + expected.add("REFERENCE VALUE-2"); + expected.add("REFERENCE VALUE-3"); + + Mockito.when(mockedReader.readLine()).thenReturn(str1, str2, str3, str4, str5, str6, null); + + testSuiteParser.getParsedTestSuiteLines(mockedReader, numericFields); + assertEquals(expected, mockRepository.getMocks().get(0).getArguments()); + } + @Test public void mock_gets_global_scope() throws IOException { String str1 = " TESTSUITE \"Name of test suite\""; diff --git a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java index 9f8c2518..6fee65e1 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java @@ -296,7 +296,7 @@ public void it_catches_unexpected_keyword_at_the_end_of_mock_context() { } @Test - public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_arguments_1() { + public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_arguments_and_commas_1() { testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); testSuite.append(" TESTCASE \"Name of test case\""+ Constants.NEWLINE); testSuite.append(" MOCK CALL 'value' USING BY CONTENT VALUE-1, VALUE-2 ONCE END-MOCK"+ Constants.NEWLINE); @@ -323,7 +323,7 @@ public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_argume } @Test - public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_arguments_2() { + public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_arguments_and_commas_2() { testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); testSuite.append(" TESTCASE \"Name of test case\""+ Constants.NEWLINE); testSuite.append(" MOCK CALL 'value' USING BY CONTENT VALUE-1, VALUE-2 VERIFY END-MOCK"+ Constants.NEWLINE); @@ -349,6 +349,60 @@ public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_argume assertEquals(expectedResult, actualResult); } + @Test + public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_arguments_without_commas_1() { + testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); + testSuite.append(" TESTCASE \"Name of test case\""+ Constants.NEWLINE); + testSuite.append(" MOCK CALL 'value' USING BY CONTENT VALUE-1 VALUE-2 ONCE END-MOCK"+ Constants.NEWLINE); + + String expectedResult = ""; + expectedResult += "SYNTAX ERROR in file: null:3:59:" + Constants.NEWLINE; + expectedResult += "Unexpected token on line 3, index 59:" + Constants.NEWLINE; + expectedResult += "Following classified as " + Constants.NEWLINE; + expectedResult += "Expected classification in the context of MOCK: [END-MOCK, fieldname, BY REFERENCE, BY CONTENT, BY VALUE, USING]" + Constants.NEWLINE; + expectedResult += "Got < ONCE> classified as < ONCE>" + Constants.NEWLINE+ Constants.NEWLINE; + expectedResult += "SYNTAX ERROR in file: null:3:11:" + Constants.NEWLINE; + expectedResult += "Unexpected token on line 3, index 11:" + Constants.NEWLINE; + expectedResult += "Following classified as " + Constants.NEWLINE; + expectedResult += "Expected classification in the context of MOCK: []" + Constants.NEWLINE; + expectedResult += "Got classified as " + Constants.NEWLINE+ Constants.NEWLINE; + + assertThrows(TestSuiteSyntaxException.class, () -> { + testSuiteParser.getParsedTestSuiteLines(new BufferedReader(new StringReader(testSuite.toString())), + numericFields); + }); + + String actualResult = testSuiteErrorLog.getErrorMessages(); + assertEquals(expectedResult, actualResult); + } + + @Test + public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_arguments_without_commas_2() { + testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); + testSuite.append(" TESTCASE \"Name of test case\""+ Constants.NEWLINE); + testSuite.append(" MOCK CALL 'value' USING BY CONTENT VALUE-1 VALUE-2 VERIFY END-MOCK"+ Constants.NEWLINE); + + String expectedResult = ""; + expectedResult += "SYNTAX ERROR in file: null:3:59:" + Constants.NEWLINE; + expectedResult += "Unexpected token on line 3, index 59:" + Constants.NEWLINE; + expectedResult += "Following classified as " + Constants.NEWLINE; + expectedResult += "Expected classification in the context of MOCK: [END-MOCK, fieldname, BY REFERENCE, BY CONTENT, BY VALUE, USING]" + Constants.NEWLINE; + expectedResult += "Got classified as " + Constants.NEWLINE+ Constants.NEWLINE; + expectedResult += "SYNTAX ERROR in file: null:3:11:" + Constants.NEWLINE; + expectedResult += "Unexpected token on line 3, index 11:" + Constants.NEWLINE; + expectedResult += "Following classified as " + Constants.NEWLINE; + expectedResult += "Expected classification in the context of MOCK: []" + Constants.NEWLINE; + expectedResult += "Got classified as " + Constants.NEWLINE+ Constants.NEWLINE; + + assertThrows(TestSuiteSyntaxException.class, () -> { + testSuiteParser.getParsedTestSuiteLines(new BufferedReader(new StringReader(testSuite.toString())), + numericFields); + }); + + String actualResult = testSuiteErrorLog.getErrorMessages(); + assertEquals(expectedResult, actualResult); + } + @Test public void it_catches_unexpected_keyword_in_an_expect_context() { testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); From 2ae38aa6906480c5ac28e34d4476dff9cedbf874 Mon Sep 17 00:00:00 2001 From: Akash Kumar <91385321+AkashKumar7902@users.noreply.github.com> Date: Wed, 5 Jul 2023 21:38:17 +0530 Subject: [PATCH 059/180] Fixed cobolcheck cannot handle spaces in path Signed-off-by: Akash Kumar <91385321+AkashKumar7902@users.noreply.github.com> --- scripts/windows_gnucobol_run_tests.cmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/windows_gnucobol_run_tests.cmd b/scripts/windows_gnucobol_run_tests.cmd index affff77e..94961874 100644 --- a/scripts/windows_gnucobol_run_tests.cmd +++ b/scripts/windows_gnucobol_run_tests.cmd @@ -4,4 +4,4 @@ rem rem Assumptions: rem rem GnuCOBOL 3.+ is installed and on the path. Its executable or alias or symlink is named "cobc". -cobc -x %* && %~dpn1 \ No newline at end of file +cobc -x %* && "%~dpn1" From 6f18796f4b81dc60a01f946ee9d4da3b642df4de Mon Sep 17 00:00:00 2001 From: issacto Date: Mon, 3 Jul 2023 17:39:40 +0800 Subject: [PATCH 060/180] add default return code Signed-off-by: issacto --- .../openmainframeproject/cobolcheck/copybooks/CCHECKRESULTPD.CPY | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/resources/org/openmainframeproject/cobolcheck/copybooks/CCHECKRESULTPD.CPY b/src/main/resources/org/openmainframeproject/cobolcheck/copybooks/CCHECKRESULTPD.CPY index 343e0bda..c639d7e3 100644 --- a/src/main/resources/org/openmainframeproject/cobolcheck/copybooks/CCHECKRESULTPD.CPY +++ b/src/main/resources/org/openmainframeproject/cobolcheck/copybooks/CCHECKRESULTPD.CPY @@ -1,5 +1,6 @@ * CCHECKRESULTPD.CPY DISPLAY SPACE + MOVE 4 TO RETURN-CODE MOVE ==UT==TEST-CASE-COUNT TO ==UT==TEST-CASE-NUMBER DISPLAY ==UT==TEST-CASE-NUMBER ' TEST CASES WERE EXECUTED' MOVE ==UT==NUMBER-PASSED TO ==UT==TEST-CASE-NUMBER From dc460c9580b6ceb3348f4dde5de7a1b7495d53f5 Mon Sep 17 00:00:00 2001 From: issacto Date: Wed, 5 Jul 2023 10:10:16 +0800 Subject: [PATCH 061/180] add return code Signed-off-by: issacto --- .../cobolcheck/copybooks/CCHECKPARAGRAPHSPD.CPY | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/resources/org/openmainframeproject/cobolcheck/copybooks/CCHECKPARAGRAPHSPD.CPY b/src/main/resources/org/openmainframeproject/cobolcheck/copybooks/CCHECKPARAGRAPHSPD.CPY index be62dcc5..a4b080c2 100644 --- a/src/main/resources/org/openmainframeproject/cobolcheck/copybooks/CCHECKPARAGRAPHSPD.CPY +++ b/src/main/resources/org/openmainframeproject/cobolcheck/copybooks/CCHECKPARAGRAPHSPD.CPY @@ -239,6 +239,7 @@ . ==UT==INITIALIZE. MOVE SPACES TO ==UT==FILE-INFORMATION + MOVE 4 to RETURN-CODE . ==UT==END. From 219070af892ed4258a12d2784d89169245ae0837 Mon Sep 17 00:00:00 2001 From: issacto Date: Wed, 5 Jul 2023 10:12:17 +0800 Subject: [PATCH 062/180] revert wrong return code Signed-off-by: issacto --- .../openmainframeproject/cobolcheck/copybooks/CCHECKRESULTPD.CPY | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/resources/org/openmainframeproject/cobolcheck/copybooks/CCHECKRESULTPD.CPY b/src/main/resources/org/openmainframeproject/cobolcheck/copybooks/CCHECKRESULTPD.CPY index c639d7e3..343e0bda 100644 --- a/src/main/resources/org/openmainframeproject/cobolcheck/copybooks/CCHECKRESULTPD.CPY +++ b/src/main/resources/org/openmainframeproject/cobolcheck/copybooks/CCHECKRESULTPD.CPY @@ -1,6 +1,5 @@ * CCHECKRESULTPD.CPY DISPLAY SPACE - MOVE 4 TO RETURN-CODE MOVE ==UT==TEST-CASE-COUNT TO ==UT==TEST-CASE-NUMBER DISPLAY ==UT==TEST-CASE-NUMBER ' TEST CASES WERE EXECUTED' MOVE ==UT==NUMBER-PASSED TO ==UT==TEST-CASE-NUMBER From 6bfa59bb45c3335e19cd34f9586b1b1f825fbdb6 Mon Sep 17 00:00:00 2001 From: issacto Date: Thu, 6 Jul 2023 00:13:45 +0800 Subject: [PATCH 063/180] add test case Signed-off-by: issacto --- src/main/cobol/RETURNCODE.CBL | 21 +++++++++++++++++++++ src/test/cobol/RETURNCODE/ReturnCode.cut | 16 ++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 src/main/cobol/RETURNCODE.CBL create mode 100644 src/test/cobol/RETURNCODE/ReturnCode.cut diff --git a/src/main/cobol/RETURNCODE.CBL b/src/main/cobol/RETURNCODE.CBL new file mode 100644 index 00000000..52bd360b --- /dev/null +++ b/src/main/cobol/RETURNCODE.CBL @@ -0,0 +1,21 @@ + IDENTIFICATION DIVISION. + PROGRAM-ID. RETURNCODE. + /**************************************************************** + * Program to exercise different mock statements and edge cases. + ***************************************************************** + ENVIRONMENT DIVISION. + INPUT-OUTPUT SECTION. + FILE-CONTROL. + DATA DIVISION. + WORKING-STORAGE SECTION. + 01 FILLER. + 05 VALUE-1 PIC X(80). + 05 VALUE-2 PIC X(80). + + PROCEDURE DIVISION. + + 000-MAKE-CALL. + MOVE "arg1" to VALUE-1 + MOVE "arg2" to VALUE-2 + CALL 'PROG1' + . \ No newline at end of file diff --git a/src/test/cobol/RETURNCODE/ReturnCode.cut b/src/test/cobol/RETURNCODE/ReturnCode.cut new file mode 100644 index 00000000..510c814b --- /dev/null +++ b/src/test/cobol/RETURNCODE/ReturnCode.cut @@ -0,0 +1,16 @@ + TestSuite "Test Return Code" + + TestCase "Return code should be 0" + MOCK CALL 'PROG1' + MOVE "Exit with return code 0" TO VALUE-1 + END-MOCK + PERFORM 000-MAKE-CALL + EXPECT VALUE-1 TO BE "Exit with return code 0" + + TestCase "Return code should be 4" + MOCK CALL 'PROG1' + MOVE "Exit with return code 4" TO VALUE-1 + GOBACK. + END-MOCK + PERFORM 000-MAKE-CALL + EXPECT VALUE-1 TO BE "Exit with return code 4" From dd774bf75efea1b598b99608e559659a4ee57fe0 Mon Sep 17 00:00:00 2001 From: issacto Date: Thu, 6 Jul 2023 23:23:49 +0800 Subject: [PATCH 064/180] add tests Signed-off-by: issacto --- src/test/cobol/RETURNCODE/ReturnCode-0.cut | 8 ++++++++ src/test/cobol/RETURNCODE/ReturnCode-4.cut | 9 +++++++++ src/test/cobol/RETURNCODE/ReturnCode.cut | 16 ---------------- 3 files changed, 17 insertions(+), 16 deletions(-) create mode 100644 src/test/cobol/RETURNCODE/ReturnCode-0.cut create mode 100644 src/test/cobol/RETURNCODE/ReturnCode-4.cut delete mode 100644 src/test/cobol/RETURNCODE/ReturnCode.cut diff --git a/src/test/cobol/RETURNCODE/ReturnCode-0.cut b/src/test/cobol/RETURNCODE/ReturnCode-0.cut new file mode 100644 index 00000000..ccc022de --- /dev/null +++ b/src/test/cobol/RETURNCODE/ReturnCode-0.cut @@ -0,0 +1,8 @@ + TestSuite "Test Return Code without GOBACK in MOCK " + + TestCase "Return code should be 0" + MOCK CALL 'PROG1' + MOVE "Exit with return code 0" TO VALUE-1 + END-MOCK + PERFORM 000-MAKE-CALL + EXPECT VALUE-1 TO BE "Exit with return code 0" \ No newline at end of file diff --git a/src/test/cobol/RETURNCODE/ReturnCode-4.cut b/src/test/cobol/RETURNCODE/ReturnCode-4.cut new file mode 100644 index 00000000..e1abb978 --- /dev/null +++ b/src/test/cobol/RETURNCODE/ReturnCode-4.cut @@ -0,0 +1,9 @@ + TestSuite "Test Return Code with GOBACK in MOCK " + + TestCase "Return code should be 4 (Should fail) " + MOCK CALL 'PROG1' + MOVE "Exit with return code 4" TO VALUE-1 + GOBACK. + END-MOCK + PERFORM 000-MAKE-CALL + EXPECT VALUE-1 TO BE "Exit with return code 4" diff --git a/src/test/cobol/RETURNCODE/ReturnCode.cut b/src/test/cobol/RETURNCODE/ReturnCode.cut deleted file mode 100644 index 510c814b..00000000 --- a/src/test/cobol/RETURNCODE/ReturnCode.cut +++ /dev/null @@ -1,16 +0,0 @@ - TestSuite "Test Return Code" - - TestCase "Return code should be 0" - MOCK CALL 'PROG1' - MOVE "Exit with return code 0" TO VALUE-1 - END-MOCK - PERFORM 000-MAKE-CALL - EXPECT VALUE-1 TO BE "Exit with return code 0" - - TestCase "Return code should be 4" - MOCK CALL 'PROG1' - MOVE "Exit with return code 4" TO VALUE-1 - GOBACK. - END-MOCK - PERFORM 000-MAKE-CALL - EXPECT VALUE-1 TO BE "Exit with return code 4" From fb3da53628655499609b5a73af85cefa9e2f82eb Mon Sep 17 00:00:00 2001 From: issacto Date: Fri, 7 Jul 2023 12:06:53 +0800 Subject: [PATCH 065/180] add test cases Signed-off-by: issacto --- src/test/cobol/MOCKTEST/MockCallTest.cut | 40 ++++++++++++++ .../cobolcheck/MockIT.java | 52 +++++++++++++++++++ .../cobolcheck/MockingTest.java | 2 +- .../cobolcheck/TestSuiteErrorLogTest.java | 49 +++++++++++++++++ 4 files changed, 142 insertions(+), 1 deletion(-) diff --git a/src/test/cobol/MOCKTEST/MockCallTest.cut b/src/test/cobol/MOCKTEST/MockCallTest.cut index 569f8e01..7a2df853 100644 --- a/src/test/cobol/MOCKTEST/MockCallTest.cut +++ b/src/test/cobol/MOCKTEST/MockCallTest.cut @@ -67,6 +67,46 @@ BY VALUE VALUE-2, VALUE-3 HAPPENED 2 TIMES + + TestCase "Call mock with content reference for arguments with one comma work" + MOCK CALL 'PROG3' USING + BY CONTENT VALUE-1, + BY VALUE VALUE-2 + VALUE-3 + MOVE "content" TO VALUE-1 + MOVE "value" TO VALUE-2 + MOVE "reference" TO VALUE-3 + END-MOCK + PERFORM 800-MAKE-CALL + EXPECT VALUE-1 TO BE "content" + EXPECT VALUE-2 TO BE "value" + EXPECT VALUE-3 TO BE "reference" + VERIFY CALL 'PROG3' USING + BY CONTENT VALUE-1, + BY VALUE VALUE-2, + VALUE-3 + HAPPENED 2 TIMES + + + TestCase "Call mock with content reference for arguments without comma work" + MOCK CALL 'PROG3' USING + BY CONTENT VALUE-1 + BY VALUE VALUE-2 + VALUE-3 + MOVE "content" TO VALUE-1 + MOVE "value" TO VALUE-2 + MOVE "reference" TO VALUE-3 + END-MOCK + PERFORM 800-MAKE-CALL + EXPECT VALUE-1 TO BE "content" + EXPECT VALUE-2 TO BE "value" + EXPECT VALUE-3 TO BE "reference" + VERIFY CALL 'PROG3' USING + BY CONTENT VALUE-1, + BY VALUE VALUE-2, + VALUE-3 + HAPPENED 2 TIMES + TestCase "Paragraph mock is called and call mock is ignored" MOCK CALL 'PROG3' USING diff --git a/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java b/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java index 98c2159c..e6032d05 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java @@ -206,6 +206,58 @@ public void it_inserts_call_mocks_correctly() throws IOException { assertEquals(getTrimmedList(expected4), actual); } + @Test + public void it_inserts_call_mocks_without_commas_correctly() throws IOException { + String s1 = " WORKING-STORAGE SECTION."; + String s2 = " PROCEDURE DIVISION."; + String s3 = " 000-START SECTION."; + String s4 = " MOVE \"Value1\" to VALUE-1"; + String s5 = " EXIT SECTION."; + String s6 = " 100-WELCOME SECTION."; + String s7 = " CALL 'prog1' USING"; + String s8 = " BY CONTENT VALUE-1, VALUE-2."; + String s9 = " MOVE \"Hello\" to VALUE-1."; + String s10 = " 200-GOODBYE SECTION."; + String s11 = " MOVE \"Bye\" to VALUE-1"; + String s12 = " CALL bogus USING VALUE-1"; + String s13 = ""; + String s14 = " CALL 'prog2' USING VALUE-1"; + String s15 = " CALL 'prog2' USING VALUE-1."; + String s16 = " ."; + String s17 = " * Ending with comment"; + + String t1 = " TestSuite \"Mocking tests\""; + String t2 = " MOCK SECTION 100-WELCOME"; + String t3 = " MOVE \"mock\" TO VALUE-1"; + String t4 = " END-MOCK"; + String t5 = " MOCK CALL 'prog2' USING VALUE-1"; + String t6 = " MOVE \"prog2\" TO VALUE-1"; + String t7 = " END-MOCK"; + String t8 = " TestCase \"Local mock overwrites global mock\""; + String t9 = " MOCK SECTION 200-GOODBYE"; + String t10 = " MOVE \"Goodbye\" TO VALUE-1"; + String t11 = " END-MOCK"; + String t12 = " PERFORM 200-GOODBYE"; + String t13 = " Expect VALUE-1 to be \"Goodbye\""; + String t14 = " TestCase \"Simply a test\""; + String t15 = " MOCK SECTION 000-START"; + String t16 = " END-MOCK"; + String t17 = " MOCK CALL 'prog1' USING BY CONTENT VALUE-1 VALUE-2"; + String t18 = " END-MOCK"; + String t19 = " MOCK SECTION 200-GOODBYE"; + String t20 = " END-MOCK"; + + Mockito.when(mockedInterpreterReader.readLine()).thenReturn(s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, + s11, s12, s13, s14, s15, s16, s17, null); + Mockito.when(mockedParserReader.readLine()).thenReturn(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, + t12, t13, t14, t15, t16, t17, t18, t19, t20, null); + + generator = new Generator(interpreterController, writerController, testSuiteParserController); + + List actual = getTrimmedList(removeBoilerPlateCode(writer.toString(), boilerPlateTags)); + assertEquals(getTrimmedList(expected4), actual); + } + private List getTrimmedList(String text){ String[] lines = text.split(Constants.NEWLINE); List result = new ArrayList<>(); diff --git a/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java b/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java index d0eb42fb..5f2a9fb8 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java @@ -296,7 +296,7 @@ public void call_mock_gets_correct_arguments() throws IOException { } @Test - public void call_mock_gets_correct_arguments_with_commas() throws IOException { + public void call_mock_gets_correct_arguments_without_commas() throws IOException { String str1 = " TESTSUITE \"Name of test suite\""; String str2 = " TESTCASE \"Name of test case\""; String str3 = " MOCK CALL 'prog1' USING BY CONTENT VALUE-1 VALUE-2 VALUE-3"; diff --git a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java index 6fee65e1..70eccf56 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java @@ -504,6 +504,55 @@ public void it_catches_unexpected_keyword_after_verify_() { assertEquals(expectedResult, actualResult); } + @Test + public void it_catches_unexpected_keyword_after_verify_without_commas() { + testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); + testSuite.append(" TESTCASE \"Name of test case\""+ Constants.NEWLINE); + testSuite.append(" MOCK CALL 'PROG3' END-MOCK"+ Constants.NEWLINE); + testSuite.append(" VERIFY CALL 'PROG3' HAPPENED ONCE"+ Constants.NEWLINE); + testSuite.append(" BEFORE EACH"+ Constants.NEWLINE); + + String expectedResult = ""; + expectedResult += "SYNTAX ERROR in file: null:5:8:" + Constants.NEWLINE; + expectedResult += "Unexpected token on line 5, index 8:" + Constants.NEWLINE; + expectedResult += "Following classified as " + Constants.NEWLINE; + expectedResult += "Expected classification: [cobol-token, TESTSUITE, TESTCASE, MOCK, VERIFY, EXPECT]" + Constants.NEWLINE; + expectedResult += "Got classified as " + Constants.NEWLINE + Constants.NEWLINE; + + assertThrows(TestSuiteSyntaxException.class, () -> { + testSuiteParser.getParsedTestSuiteLines(new BufferedReader(new StringReader(testSuite.toString())), + numericFields); + }); + + String actualResult = testSuiteErrorLog.getErrorMessages(); + assertEquals(expectedResult, actualResult); + } + + @Test + public void it_catches_unexpected_keyword_after_verify_without_commas_() { + testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); + testSuite.append(" TESTCASE \"Name of test case\""+ Constants.NEWLINE); + testSuite.append(" MOCK CALL 'PROG3' END-MOCK"+ Constants.NEWLINE); + testSuite.append(" VERIFY CALL 'PROG3' HAPPENED ONCE"+ Constants.NEWLINE); + testSuite.append(" BEFORE EACH"+ Constants.NEWLINE); + + String expectedResult = ""; + expectedResult += "SYNTAX ERROR in file: null:5:8:" + Constants.NEWLINE; + expectedResult += "Unexpected token on line 5, index 8:" + Constants.NEWLINE; + expectedResult += "Following classified as " + Constants.NEWLINE; + expectedResult += "Expected classification: [cobol-token, TESTSUITE, TESTCASE, MOCK, VERIFY, EXPECT]" + Constants.NEWLINE; + expectedResult += "Got classified as " + Constants.NEWLINE + Constants.NEWLINE; + + assertThrows(TestSuiteSyntaxException.class, () -> { + testSuiteParser.getParsedTestSuiteLines(new BufferedReader(new StringReader(testSuite.toString())), + numericFields); + }); + + String actualResult = testSuiteErrorLog.getErrorMessages(); + assertEquals(expectedResult, actualResult); + } + + @Test public void it_catches_type_mismatch_of_numeric_and_alphanumeric_for_explicit_numeric_in_unit_test() { testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); From e917dd6b8349ba06a7d78b3f71b7646a6324079f Mon Sep 17 00:00:00 2001 From: issacto Date: Mon, 17 Jul 2023 17:54:33 +0800 Subject: [PATCH 066/180] fix vs code syntax 1 Signed-off-by: issacto --- vs code extension/server/src/server.ts | 5 +++-- vs code extension/syntaxes/cut.tmLanguage.json | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/vs code extension/server/src/server.ts b/vs code extension/server/src/server.ts index c805d4ef..063e1b1e 100644 --- a/vs code extension/server/src/server.ts +++ b/vs code extension/server/src/server.ts @@ -192,9 +192,10 @@ async function validateTextDocument(textDocument: TextDocument): Promise { //TODO: Make regex exclude keywords inside quotes. //TODO: Make regex' more efficient. Somewhat slow on large files. const delimiters = - [[/(? Date: Mon, 31 Jul 2023 11:06:49 +0100 Subject: [PATCH 067/180] fix vs code syntax - 2 String Signed-off-by: issacto --- vs code extension/server/src/server.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/vs code extension/server/src/server.ts b/vs code extension/server/src/server.ts index 063e1b1e..2409a725 100644 --- a/vs code extension/server/src/server.ts +++ b/vs code extension/server/src/server.ts @@ -192,9 +192,9 @@ async function validateTextDocument(textDocument: TextDocument): Promise { //TODO: Make regex exclude keywords inside quotes. //TODO: Make regex' more efficient. Somewhat slow on large files. const delimiters = - [[/(? Date: Mon, 31 Jul 2023 11:27:42 +0100 Subject: [PATCH 068/180] add missing vs code syntax Signed-off-by: issacto --- vs code extension/syntaxes/cut.tmLanguage.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/vs code extension/syntaxes/cut.tmLanguage.json b/vs code extension/syntaxes/cut.tmLanguage.json index 015a0a35..671756fb 100644 --- a/vs code extension/syntaxes/cut.tmLanguage.json +++ b/vs code extension/syntaxes/cut.tmLanguage.json @@ -104,7 +104,7 @@ "comment": "Description keywords in unit tests" }, { - "begin": "(?i:mock|after\\ each|before\\ each|before\\-each)", + "begin": "(?i:mock|after\\ each|after\\-each|before\\ each|before\\-each)", "name": "constant.character.escape", "patterns": [ { From d3ace135bb9b1aa7c91f6bea6208353ad6244077 Mon Sep 17 00:00:00 2001 From: issacto Date: Mon, 31 Jul 2023 11:34:42 +0100 Subject: [PATCH 069/180] add paragraph to test case Signed-off-by: issacto --- vs code extension/client/testFixture/errorfree.cut | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/vs code extension/client/testFixture/errorfree.cut b/vs code extension/client/testFixture/errorfree.cut index 9f9e49a9..d91c7f27 100644 --- a/vs code extension/client/testFixture/errorfree.cut +++ b/vs code extension/client/testFixture/errorfree.cut @@ -7,4 +7,14 @@ MOCK SECTION 911-PUT-HARD-ERROR CONTINUE END-MOCK + + MOCK PARAGRAPH 300-CHANGE-1 + EVALUATE VALUE-1 + WHEN "Hello" + MOVE "MOCKED" TO VALUE-1 + WHEN OTHER + MOVE "mocked" TO VALUE-1 + END-EVALUATE + END-MOCK + \ No newline at end of file From 22d82a45352bb85460ec23dab057e41d607efe9f Mon Sep 17 00:00:00 2001 From: issacto Date: Mon, 31 Jul 2023 11:48:26 +0100 Subject: [PATCH 070/180] modify test result Signed-off-by: issacto --- vs code extension/client/src/test/diagnostics.test.ts | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/vs code extension/client/src/test/diagnostics.test.ts b/vs code extension/client/src/test/diagnostics.test.ts index 5f48ae10..861a5f85 100644 --- a/vs code extension/client/src/test/diagnostics.test.ts +++ b/vs code extension/client/src/test/diagnostics.test.ts @@ -13,12 +13,10 @@ suite('Should get diagnostics', () => { await testDiagnostics(docUriEF, []); }); - test('Reports missing delimiters', async () => { - await testDiagnostics(docUriMD, [ - { message: 'Unclosed END BEFORE', range: toRange(3, 11, 3, 21), severity: vscode.DiagnosticSeverity.Error, source: 'cut' }, - { message: 'Unclosed MOCK', range: toRange(5, 11, 5, 15), severity: vscode.DiagnosticSeverity.Error, source: 'cut' } - ]); - }); + test('Reports no error in missing delimiters file', async () => { + //expectedDiagnostics empty since there are no errors + await testDiagnostics(docUriMD, []); + }); test('Reports general syntax error', async () => { await testDiagnostics(docUriSE, [ From 0fa1d0d7131de66f80938ca40149188cb8da6ff1 Mon Sep 17 00:00:00 2001 From: issacto Date: Wed, 2 Aug 2023 12:18:51 +0100 Subject: [PATCH 071/180] refactor regrex Signed-off-by: issacto --- vs code extension/server/src/server.ts | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/vs code extension/server/src/server.ts b/vs code extension/server/src/server.ts index 2409a725..ec039d0b 100644 --- a/vs code extension/server/src/server.ts +++ b/vs code extension/server/src/server.ts @@ -188,13 +188,23 @@ async function validateTextDocument(textDocument: TextDocument): Promise { let text = textDocument.getText(); let m: RegExpExecArray | null; - // Find unclosed delimiters of each type. - //TODO: Make regex exclude keywords inside quotes. //TODO: Make regex' more efficient. Somewhat slow on large files. - const delimiters = - [[/(? [ + new RegExp(`${sixDigitsFollowedByAsterisk}${notInSingleQuotes}${notInDoubleQuotes}${start}`), + new RegExp(`${sixDigitsFollowedByAsterisk}${notInSingleQuotes}${notInDoubleQuotes}${end}`) + ]; + + const delimiters: RegexPair[] = [ + createRegexPair("BEFORE(-| )EACH", "END-BEFORE"), + createRegexPair("(? Date: Tue, 16 May 2023 15:42:13 +0200 Subject: [PATCH 072/180] Version 0.2.8 Signed-off-by: Brian Wildt Signed-off-by: issacto --- CHANGELOG.md | 4 ++ README.md | 2 +- build.gradle | 2 +- build/distributions/cobol-check-0.2.8.zip | Bin 0 -> 218127 bytes .../services/cobolLogic/Interpreter.java | 3 + .../cobolcheck/InterpreterControllerTest.java | 20 +++++++ vs code extension/CHANGELOG.md | 3 + ...-check-0.2.7.jar => cobol-check-0.2.8.jar} | Bin 243274 -> 243281 bytes vs code extension/package.json | 2 +- zapp.json | 55 ++++++++++++++++++ 10 files changed, 88 insertions(+), 3 deletions(-) create mode 100644 build/distributions/cobol-check-0.2.8.zip rename vs code extension/Cobol-check/bin/{cobol-check-0.2.7.jar => cobol-check-0.2.8.jar} (95%) create mode 100644 zapp.json diff --git a/CHANGELOG.md b/CHANGELOG.md index 08163dae..ce8d91a2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,10 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 - Mock SQL tables - Mock batch file I/O +## \[0.2.8\] 2023-05-16 - Unreleased +### Implemented +- Proper handling of END-EXEC without trailing period in WORKING-STORAGE + ## \[0.2.7\] 2023-03-21 - Unreleased ### Implemented - EXPECT now properly handles variable subscription without a space delimiter (EXPECT varibable(idx) TO BE 1) diff --git a/README.md b/README.md index 47107da0..22eb72c2 100644 --- a/README.md +++ b/README.md @@ -23,7 +23,7 @@ As of March 2022 we could use help with: ## Downloads -Version 0.2.7 pre-release is available! +Version 0.2.8 pre-release is available! [//]: # (- Find the download on the project home page on the [Neo Pragma site](https://neopragma.com/projects/cobol-check/).) - Find distributions here: [Cobol Check Ditributions](https://github.com/openmainframeproject/cobol-check/blob/main/build/distributions). diff --git a/build.gradle b/build.gradle index 451532fb..c9d8fc82 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ plugins { id 'jacoco' } -def productVersion = '0.2.7' +def productVersion = '0.2.8' def productName = 'cobol-check' group = 'org.openmainframeproject' description = 'Unit testing framework for Cobol' diff --git a/build/distributions/cobol-check-0.2.8.zip b/build/distributions/cobol-check-0.2.8.zip new file mode 100644 index 0000000000000000000000000000000000000000..84e0150ef5f722a3cbc770d5758618e5f9032160 GIT binary patch literal 218127 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%0AMU_XDA{H!`MGLd5eqY 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 delta 6888 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 k0Mw9l&408;{2&|>Uc0(V>bKNlMI8vp Date: Tue, 16 May 2023 16:10:25 +0200 Subject: [PATCH 073/180] Delete zapp.json Zapp-file is a local file, and should not be uploaded ti GitHub Signed-off-by: dakaa16 Signed-off-by: issacto --- zapp.json | 55 ------------------------------------------------------- 1 file changed, 55 deletions(-) delete mode 100644 zapp.json diff --git a/zapp.json b/zapp.json deleted file mode 100644 index e6703efd..00000000 --- a/zapp.json +++ /dev/null @@ -1,55 +0,0 @@ -{ - "name": "Bankdata", - "description": "This file is needed for fetching copybooks. If the file is missing, it will be recreated. If a newer version exists, the file will be overwritten. Version: 1.0.1", - "version": "3.0.0", - "author": { - "name": "Bankdata UDS" - }, - "propertyGroups": [ - { - "name": "localFolders", - "language": "cobol", - "libraries": [ - { - "name": "syslib", - "type": "local", - "locations": [ - "c:/Udvikler/cobol-check-distribute/cobol-check/src/main/cobol/batch", - "c:/Udvikler/cobol-check-distribute/cobol-check/src/main/cobol/cics", - "c:/Udvikler/cobol-check-distribute/cobol-check/src/main/cobol/generic", - "c:/Udvikler/cobol-check-distribute/cobol-check/build/dependencies/src/main/cobol/batch", - "c:/Udvikler/cobol-check-distribute/cobol-check/build/dependencies/src/main/cobol/cics", - "c:/Udvikler/cobol-check-distribute/cobol-check/build/dependencies/src/main/cobol/generic" - ] - } - ] - }, - { - "name": "hostDependencies", - "language": "cobol", - "libraries": [ - { - "name": "syslib", - "type": "mvs", - "locations": [ - "UBIBRW.BOX.SRC", - "UGRBOXP.TCIC.SRC", - "UGRBOXP.SCIC.SRC", - "UGRBOXP.MODTAG.SRC", - "UGRBOXP.AKTIV.SRC", - "UGRBOXP.DCAAKTIV.SRC", - "UGRBOXP.TCIC.DCLGENC2", - "UGRBOXP.SCIC.DCLGENC2", - "UGRBOXP.MODTAG.DCLGENC2", - "UGRBOXP.AKTIV.DCLGENC2", - "UGRBOXP.DCAAKTIV.DCLGENC2", - "UGRBOXP.TCIC.WSAGEN", - "UGRBOXP.SCIC.WSAGEN", - "UGRBOXP.AKTIV.WSAGEN", - "SYS1.SCEESAMP" - ] - } - ] - } - ] - } \ No newline at end of file From 91775c2503dd6cd05fd5e217c1aa93394cefb637 Mon Sep 17 00:00:00 2001 From: issacto Date: Sun, 25 Jun 2023 22:08:37 +0800 Subject: [PATCH 074/180] add check option Signed-off-by: issacto --- .../cobolcheck/features/argumentHandler/ArgumentHandler.java | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/argumentHandler/ArgumentHandler.java b/src/main/java/org/openmainframeproject/cobolcheck/features/argumentHandler/ArgumentHandler.java index 5ab4ca59..e8526378 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/argumentHandler/ArgumentHandler.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/argumentHandler/ArgumentHandler.java @@ -142,6 +142,10 @@ private void processCommandLineArgumentArray(String[] args) { public void loadArgProgramPaths(){ String applicationSourceDirectory = Config.getApplicationSourceDirectoryPathString(); + if(options.isEmpty()){ + // return error when no program is passed + throw new PossibleInternalLogicErrorException(Messages.get("ERR005")); + } for (OptionKey optionKey : options.keySet()) { if (optionKey.shortKey.equals(Constants.PROGRAMS_OPTION) || optionKey.longKey.equals(Constants.PROGRAMS_OPTION)) { String programArgs = options.get(optionKey).argumentValue; From 0a43efff5962c7fbc0015bff071bdeb1acf1da5d Mon Sep 17 00:00:00 2001 From: issacto Date: Sun, 25 Jun 2023 23:13:02 +0800 Subject: [PATCH 075/180] add java test Signed-off-by: issacto --- .../features/argumentHandler/ArgumentHandler.java | 2 +- .../cobolcheck/messages/messages.properties | 3 +++ .../cobolcheck/ArgumentHandlerTest.java | 11 +++++++++++ 3 files changed, 15 insertions(+), 1 deletion(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/argumentHandler/ArgumentHandler.java b/src/main/java/org/openmainframeproject/cobolcheck/features/argumentHandler/ArgumentHandler.java index e8526378..ac29525c 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/argumentHandler/ArgumentHandler.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/argumentHandler/ArgumentHandler.java @@ -144,7 +144,7 @@ public void loadArgProgramPaths(){ String applicationSourceDirectory = Config.getApplicationSourceDirectoryPathString(); if(options.isEmpty()){ // return error when no program is passed - throw new PossibleInternalLogicErrorException(Messages.get("ERR005")); + throw new CommandLineArgumentException(Messages.get("ERR030")); } for (OptionKey optionKey : options.keySet()) { if (optionKey.shortKey.equals(Constants.PROGRAMS_OPTION) || optionKey.longKey.equals(Constants.PROGRAMS_OPTION)) { diff --git a/src/main/resources/org/openmainframeproject/cobolcheck/messages/messages.properties b/src/main/resources/org/openmainframeproject/cobolcheck/messages/messages.properties index c5c2046c..a3597639 100644 --- a/src/main/resources/org/openmainframeproject/cobolcheck/messages/messages.properties +++ b/src/main/resources/org/openmainframeproject/cobolcheck/messages/messages.properties @@ -30,6 +30,9 @@ ERR027 = ERR027: NumericFields.dataTypeOf() was called with empty fieldName. ERR028 = ERR028: NumericFields.setDataTypeOf() was called with empty fieldName. ERR029 = ERR029: NumericFields.setDataTypeOf() was called with null dataType. +ERR030 = ERR030: Command line missing program argument. + + WRN001 = WRN001: No test suite directory for program %1$s was found under directory %2$s. WRN002 = WRN002: No test suite files were found under directory %1$s. WRN003 = WRN003: DirectoryNameMatcher caught IOException on file %1$s. diff --git a/src/test/java/org/openmainframeproject/cobolcheck/ArgumentHandlerTest.java b/src/test/java/org/openmainframeproject/cobolcheck/ArgumentHandlerTest.java index 75f2ef5b..354bcf97 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/ArgumentHandlerTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/ArgumentHandlerTest.java @@ -133,4 +133,15 @@ public void it_throws_when_no_value_is_passed_for_the_last_argument_and_it_requi }); } + @Test + public void it_throws_when_program_argument_is_not_present() { + Throwable ex = assertThrows(CommandLineArgumentException.class, () -> { + ArgumentHandler argumentHandler = new ArgumentHandler(new String[] { }, + optionSpec); + argumentHandler.loadArgProgramPaths(); + }); + assertEquals("ERR030: Command line missing program argument.", + ex.getMessage()); + } + } From 28e9fde525a316cc10b6717656f3a0f85c1d6880 Mon Sep 17 00:00:00 2001 From: issacto Date: Sun, 25 Jun 2023 23:19:22 +0800 Subject: [PATCH 076/180] change test name Signed-off-by: issacto --- .../cobolcheck/messages/messages.properties | 2 +- .../openmainframeproject/cobolcheck/ArgumentHandlerTest.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/resources/org/openmainframeproject/cobolcheck/messages/messages.properties b/src/main/resources/org/openmainframeproject/cobolcheck/messages/messages.properties index a3597639..40705dca 100644 --- a/src/main/resources/org/openmainframeproject/cobolcheck/messages/messages.properties +++ b/src/main/resources/org/openmainframeproject/cobolcheck/messages/messages.properties @@ -30,7 +30,7 @@ ERR027 = ERR027: NumericFields.dataTypeOf() was called with empty fieldName. ERR028 = ERR028: NumericFields.setDataTypeOf() was called with empty fieldName. ERR029 = ERR029: NumericFields.setDataTypeOf() was called with null dataType. -ERR030 = ERR030: Command line missing program argument. +ERR030 = ERR030: Command line missing program argument '-p programName' . WRN001 = WRN001: No test suite directory for program %1$s was found under directory %2$s. diff --git a/src/test/java/org/openmainframeproject/cobolcheck/ArgumentHandlerTest.java b/src/test/java/org/openmainframeproject/cobolcheck/ArgumentHandlerTest.java index 354bcf97..dbdc9151 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/ArgumentHandlerTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/ArgumentHandlerTest.java @@ -140,7 +140,7 @@ public void it_throws_when_program_argument_is_not_present() { optionSpec); argumentHandler.loadArgProgramPaths(); }); - assertEquals("ERR030: Command line missing program argument.", + assertEquals("ERR030: Command line missing program argument '-p programName' .", ex.getMessage()); } From aad2302cebe558411e5b19475a14179aa6a752dd Mon Sep 17 00:00:00 2001 From: issacto Date: Tue, 27 Jun 2023 17:38:27 +0800 Subject: [PATCH 077/180] fix arguments bug Signed-off-by: issacto --- .../features/argumentHandler/ArgumentHandler.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/argumentHandler/ArgumentHandler.java b/src/main/java/org/openmainframeproject/cobolcheck/features/argumentHandler/ArgumentHandler.java index ac29525c..3a006a80 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/argumentHandler/ArgumentHandler.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/argumentHandler/ArgumentHandler.java @@ -142,10 +142,7 @@ private void processCommandLineArgumentArray(String[] args) { public void loadArgProgramPaths(){ String applicationSourceDirectory = Config.getApplicationSourceDirectoryPathString(); - if(options.isEmpty()){ - // return error when no program is passed - throw new CommandLineArgumentException(Messages.get("ERR030")); - } + boolean isProgramSpecified = false; for (OptionKey optionKey : options.keySet()) { if (optionKey.shortKey.equals(Constants.PROGRAMS_OPTION) || optionKey.longKey.equals(Constants.PROGRAMS_OPTION)) { String programArgs = options.get(optionKey).argumentValue; @@ -156,8 +153,13 @@ public void loadArgProgramPaths(){ newValue += "|"; } options.get(optionKey).argumentValue = newValue.substring(0, newValue.length()-1); + if(!programArgs.equals("")) isProgramSpecified = true; } } + if(!isProgramSpecified){ + // return error when no program is passed + throw new CommandLineArgumentException(Messages.get("ERR030")); + } } private OptionValue lookupOption(String requestedOption) { From 058b23baeb4d22cd2fbcdbb9324b809a3ba76271 Mon Sep 17 00:00:00 2001 From: issacto Date: Tue, 27 Jun 2023 22:00:09 +0800 Subject: [PATCH 078/180] add test case Signed-off-by: issacto --- .../cobolcheck/ArgumentHandlerTest.java | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/test/java/org/openmainframeproject/cobolcheck/ArgumentHandlerTest.java b/src/test/java/org/openmainframeproject/cobolcheck/ArgumentHandlerTest.java index dbdc9151..e2deef49 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/ArgumentHandlerTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/ArgumentHandlerTest.java @@ -144,4 +144,15 @@ public void it_throws_when_program_argument_is_not_present() { ex.getMessage()); } + @Test + public void it_throws_when_program_argument_is_not_presen_and_has_other_argument() { + Throwable ex = assertThrows(CommandLineArgumentException.class, () -> { + ArgumentHandler argumentHandler = new ArgumentHandler(new String[] {"-c", "config.properties" }, + optionSpec); + argumentHandler.loadArgProgramPaths(); + }); + assertEquals("ERR030: Command line missing program argument '-p programName' .", + ex.getMessage()); + } + } From e987a3391dbac0e1e376241bafbd675a920c4e29 Mon Sep 17 00:00:00 2001 From: issacto Date: Fri, 23 Jun 2023 01:29:21 +0800 Subject: [PATCH 079/180] Add arguments without commas Signed-off-by: issacto --- .../testSuiteParser/TestSuiteParser.java | 43 +++++++++++++++---- 1 file changed, 35 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index 8e661c89..d463a1be 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -76,6 +76,8 @@ public class TestSuiteParser { private int testCaseNumber = 0; private boolean expectNumericCompare; + private boolean previousLineContainsArgument = false; + // Lines inserted into the test program private static final String COBOL_PERFORM_INITIALIZE = " PERFORM %sINITIALIZE"; private static final String COBOL_DISPLAY_TESTSUITE = " DISPLAY \"TESTSUITE:\""; @@ -176,6 +178,7 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, numericFields = numericFieldsList; String testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); while (testSuiteToken != null) { + if (!testSuiteToken.startsWith(Constants.QUOTE) && !testSuiteToken.startsWith(Constants.APOSTROPHE)) { testSuiteToken = testSuiteToken.toUpperCase(Locale.ROOT); } @@ -184,6 +187,7 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); continue; } + boolean cobolTokenIsFieldName = (expectInProgress || expectQualifiedName || expectMockIdentifier || (expectMockArguments && !expectUsing)); @@ -195,11 +199,34 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, // to next token expectMockArguments = false; expectUsing = false; + // System.out.println("TESTING"); + // System.out.println(keyword.keywordAction()); + // System.out.println(testSuiteToken); handleEndOfMockStatement(testSuiteReader, testSuiteToken, false); testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); + System.out.println(testSuiteToken); + continue; + } + + if (!verifyInProgress && expectMockArguments + && CobolVerbs.isStartOrEndCobolVerb(testSuiteToken)) { + // In this case we expected cobol verbs and stop counting arguments + // update the keyword as fieldname was assumed + keyword = Keywords.getKeywordFor(testSuiteToken, false); + expectMockArguments = false; + expectUsing = false; + // System.out.println("TESTING"); + // System.out.println(testSuiteToken); + // System.out.println(keyword.keywordAction()); + ignoreCobolStatementAndFieldNameKeyAction = true; + handleEndOfMockStatement(testSuiteReader, testSuiteToken, previousLineContainsArgument); + testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); + previousLineContainsArgument=false; continue; } + + if (!testSuiteErrorLog.checkExpectedTokenSyntax(keyword, testSuiteToken, currentTestSuiteRealFile, fileLineNumber, fileLineIndexNumber)) { testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); @@ -318,6 +345,8 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, addTestCodeForAssertion(parsedTestSuiteLines, numericFields); toBeInProgress = false; } + + if (expectMockIdentifier) { expectMockIdentifier = false; ignoreCobolStatementAndFieldNameKeyAction = true; @@ -345,6 +374,7 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, if (!expectUsing) { currentLineContainsArgument = true; ignoreCobolStatementAndFieldNameKeyAction = true; + if (verifyInProgress) currentVerify.addArgument(getCallArgument(currentMockArgument, testSuiteToken)); else @@ -354,13 +384,7 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, if (testSuiteToken.endsWith(",")) break; } - // Contains no arguments or all arguments has been added - expectMockArguments = false; - expectUsing = false; - if (!verifyInProgress) { - ignoreCobolStatementAndFieldNameKeyAction = true; - handleEndOfMockStatement(testSuiteReader, testSuiteToken, currentLineContainsArgument); - } + previousLineContainsArgument = currentLineContainsArgument; } if (verifyInProgress) { @@ -374,6 +398,8 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, break; case Constants.ALPHANUMERIC_LITERAL_KEYWORD: + + if (expectTestsuiteName) { expectTestsuiteName = false; currentTestSuiteName = testSuiteToken; @@ -618,7 +644,7 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, break; } if (CobolVerbs.isStartOrEndCobolVerb(testSuiteToken)) { - if (cobolStatementInProgress) { + if ( cobolStatementInProgress) { addUserWrittenCobolStatement(parsedTestSuiteLines); initializeCobolStatement(); } @@ -830,6 +856,7 @@ private String getCallArgument(String referenceType, String value) { outPut = ("REFERENCE " + value.replace(",", "")); else outPut = (referenceType + " " + value.replace(",", "")); + return outPut; } From c88aefb207c4dc2988846bc7193a0e55180a83bd Mon Sep 17 00:00:00 2001 From: issacto Date: Fri, 23 Jun 2023 10:02:46 +0800 Subject: [PATCH 080/180] add ignoreStatement Signed-off-by: issacto --- .../features/testSuiteParser/TestSuiteParser.java | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index d463a1be..714e7e81 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -210,7 +210,7 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, if (!verifyInProgress && expectMockArguments && CobolVerbs.isStartOrEndCobolVerb(testSuiteToken)) { - // In this case we expected cobol verbs and stop counting arguments + // NEW: In this case we expected cobol verbs and stop counting arguments // update the keyword as fieldname was assumed keyword = Keywords.getKeywordFor(testSuiteToken, false); expectMockArguments = false; @@ -218,7 +218,6 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, // System.out.println("TESTING"); // System.out.println(testSuiteToken); // System.out.println(keyword.keywordAction()); - ignoreCobolStatementAndFieldNameKeyAction = true; handleEndOfMockStatement(testSuiteReader, testSuiteToken, previousLineContainsArgument); testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); previousLineContainsArgument=false; @@ -384,6 +383,9 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, if (testSuiteToken.endsWith(",")) break; } + if (!verifyInProgress) { + ignoreCobolStatementAndFieldNameKeyAction = true; + } previousLineContainsArgument = currentLineContainsArgument; } From 645297ee0c89cb4a47a919710721f57dd15e07ac Mon Sep 17 00:00:00 2001 From: issacto Date: Fri, 23 Jun 2023 10:13:18 +0800 Subject: [PATCH 081/180] add ignoreStatement Signed-off-by: issacto --- .../cobolcheck/features/testSuiteParser/TestSuiteParser.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index 714e7e81..7740d0c7 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -218,6 +218,7 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, // System.out.println("TESTING"); // System.out.println(testSuiteToken); // System.out.println(keyword.keywordAction()); + ignoreCobolStatementAndFieldNameKeyAction=true; handleEndOfMockStatement(testSuiteReader, testSuiteToken, previousLineContainsArgument); testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); previousLineContainsArgument=false; @@ -383,9 +384,6 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, if (testSuiteToken.endsWith(",")) break; } - if (!verifyInProgress) { - ignoreCobolStatementAndFieldNameKeyAction = true; - } previousLineContainsArgument = currentLineContainsArgument; } From a10d96841f3634e3b960cf469c46ad3662c27d81 Mon Sep 17 00:00:00 2001 From: issacto Date: Fri, 23 Jun 2023 15:10:12 +0800 Subject: [PATCH 082/180] fix error Signed-off-by: issacto --- .../testSuiteParser/TestSuiteParser.java | 27 +++++++++---------- 1 file changed, 13 insertions(+), 14 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index 7740d0c7..7009242d 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -76,8 +76,6 @@ public class TestSuiteParser { private int testCaseNumber = 0; private boolean expectNumericCompare; - private boolean previousLineContainsArgument = false; - // Lines inserted into the test program private static final String COBOL_PERFORM_INITIALIZE = " PERFORM %sINITIALIZE"; private static final String COBOL_DISPLAY_TESTSUITE = " DISPLAY \"TESTSUITE:\""; @@ -188,23 +186,25 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, continue; } + boolean cobolTokenIsFieldName = (expectInProgress || expectQualifiedName || expectMockIdentifier || (expectMockArguments && !expectUsing)); Keyword keyword = Keywords.getKeywordFor(testSuiteToken, cobolTokenIsFieldName); + + System.out.println("TESTING"); + System.out.println(keyword.keywordAction()); + System.out.println(testSuiteToken); + if (!verifyInProgress && expectUsing && expectMockArguments && !keyword.value().equals(Constants.USING_TOKEN)) { // In this case we expected mock arguments, but got none. We end the mock and go // to next token expectMockArguments = false; expectUsing = false; - // System.out.println("TESTING"); - // System.out.println(keyword.keywordAction()); - // System.out.println(testSuiteToken); handleEndOfMockStatement(testSuiteReader, testSuiteToken, false); testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); - System.out.println(testSuiteToken); continue; } @@ -212,16 +212,12 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, && CobolVerbs.isStartOrEndCobolVerb(testSuiteToken)) { // NEW: In this case we expected cobol verbs and stop counting arguments // update the keyword as fieldname was assumed - keyword = Keywords.getKeywordFor(testSuiteToken, false); + // keyword = Keywords.getKeywordFor(testSuiteToken, false); + System.out.println("Appeared"); expectMockArguments = false; expectUsing = false; - // System.out.println("TESTING"); - // System.out.println(testSuiteToken); - // System.out.println(keyword.keywordAction()); - ignoreCobolStatementAndFieldNameKeyAction=true; - handleEndOfMockStatement(testSuiteReader, testSuiteToken, previousLineContainsArgument); + handleEndOfMockStatement(testSuiteReader, testSuiteToken, false); testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); - previousLineContainsArgument=false; continue; } @@ -384,7 +380,10 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, if (testSuiteToken.endsWith(",")) break; } - previousLineContainsArgument = currentLineContainsArgument; + expectUsing = false; + if (!verifyInProgress) { + ignoreCobolStatementAndFieldNameKeyAction = true; + } } if (verifyInProgress) { From 4399b4385cb8a3a0df1ac1d90202e53e9d19e6cc Mon Sep 17 00:00:00 2001 From: issacto Date: Fri, 23 Jun 2023 15:15:08 +0800 Subject: [PATCH 083/180] clean Signed-off-by: issacto --- .../features/testSuiteParser/TestSuiteParser.java | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index 7009242d..e1b5be8c 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -192,11 +192,6 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, || (expectMockArguments && !expectUsing)); Keyword keyword = Keywords.getKeywordFor(testSuiteToken, cobolTokenIsFieldName); - - System.out.println("TESTING"); - System.out.println(keyword.keywordAction()); - System.out.println(testSuiteToken); - if (!verifyInProgress && expectUsing && expectMockArguments && !keyword.value().equals(Constants.USING_TOKEN)) { // In this case we expected mock arguments, but got none. We end the mock and go @@ -213,9 +208,7 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, // NEW: In this case we expected cobol verbs and stop counting arguments // update the keyword as fieldname was assumed // keyword = Keywords.getKeywordFor(testSuiteToken, false); - System.out.println("Appeared"); expectMockArguments = false; - expectUsing = false; handleEndOfMockStatement(testSuiteReader, testSuiteToken, false); testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); continue; From d5f581d2b5921a94f98087082bc490672aa6f619 Mon Sep 17 00:00:00 2001 From: issacto Date: Fri, 23 Jun 2023 15:42:54 +0800 Subject: [PATCH 084/180] clean Signed-off-by: issacto --- .../features/testSuiteParser/TestSuiteParser.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index e1b5be8c..c22d8b58 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -203,12 +203,13 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, continue; } - if (!verifyInProgress && expectMockArguments + if (expectMockArguments && CobolVerbs.isStartOrEndCobolVerb(testSuiteToken)) { // NEW: In this case we expected cobol verbs and stop counting arguments // update the keyword as fieldname was assumed // keyword = Keywords.getKeywordFor(testSuiteToken, false); expectMockArguments = false; + expectUsing = false; handleEndOfMockStatement(testSuiteReader, testSuiteToken, false); testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); continue; @@ -370,8 +371,7 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, currentMock.addArgument(getCallArgument(currentMockArgument, testSuiteToken)); currentMockArgument = ""; - if (testSuiteToken.endsWith(",")) - break; + } expectUsing = false; if (!verifyInProgress) { From 2b8aafb90601ecbb93aed003dee418b6979fa0be Mon Sep 17 00:00:00 2001 From: issacto Date: Fri, 23 Jun 2023 15:58:15 +0800 Subject: [PATCH 085/180] clean Signed-off-by: issacto --- .../cobolcheck/features/testSuiteParser/TestSuiteParser.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index c22d8b58..7aee8a65 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -373,10 +373,11 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, currentMockArgument = ""; } - expectUsing = false; - if (!verifyInProgress) { + + if (expectUsing && !verifyInProgress) { ignoreCobolStatementAndFieldNameKeyAction = true; } + expectUsing = false; } if (verifyInProgress) { From c9af038ff056b8000f39c66146ff0f09748d2bdb Mon Sep 17 00:00:00 2001 From: issacto Date: Fri, 23 Jun 2023 16:04:56 +0800 Subject: [PATCH 086/180] fix testing error Signed-off-by: issacto --- .../cobolcheck/features/testSuiteParser/TestSuiteParser.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index 7aee8a65..fb84db46 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -374,10 +374,11 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, } - if (expectUsing && !verifyInProgress) { + if (!currentLineContainsArgument && !verifyInProgress) { ignoreCobolStatementAndFieldNameKeyAction = true; + expectUsing = false; } - expectUsing = false; + } if (verifyInProgress) { From 2c362919a480a781e36be79bcefb9c9ac4938ec4 Mon Sep 17 00:00:00 2001 From: issacto Date: Fri, 23 Jun 2023 16:15:11 +0800 Subject: [PATCH 087/180] fix testing error Signed-off-by: issacto --- .../features/testSuiteParser/TestSuiteParser.java | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index fb84db46..8783dc8c 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -372,11 +372,15 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, currentMockArgument = ""; - } - - if (!currentLineContainsArgument && !verifyInProgress) { - ignoreCobolStatementAndFieldNameKeyAction = true; + }else{ expectUsing = false; + expectMockArguments = false; + if (expectUsing && !verifyInProgress) { + System.out.println("TRIGGERED"); + ignoreCobolStatementAndFieldNameKeyAction = true; + handleEndOfMockStatement(testSuiteReader, testSuiteToken, currentLineContainsArgument); + } + } } From af1990c7ad136766d4490f1d891095775aaa936e Mon Sep 17 00:00:00 2001 From: issacto Date: Fri, 23 Jun 2023 16:20:15 +0800 Subject: [PATCH 088/180] fix testing error Signed-off-by: issacto --- .../cobolcheck/features/testSuiteParser/TestSuiteParser.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index 8783dc8c..5432a31e 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -375,8 +375,7 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, }else{ expectUsing = false; expectMockArguments = false; - if (expectUsing && !verifyInProgress) { - System.out.println("TRIGGERED"); + if (!verifyInProgress) { ignoreCobolStatementAndFieldNameKeyAction = true; handleEndOfMockStatement(testSuiteReader, testSuiteToken, currentLineContainsArgument); } From 80a1080c98f090c2e2a7d31691e80f0b01a24e5a Mon Sep 17 00:00:00 2001 From: issacto Date: Sat, 24 Jun 2023 23:00:41 +0800 Subject: [PATCH 089/180] fix java test error Signed-off-by: issacto --- .../features/testSuiteParser/TestSuiteParser.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index 5432a31e..c88a47de 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -203,15 +203,20 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, continue; } - if (expectMockArguments - && CobolVerbs.isStartOrEndCobolVerb(testSuiteToken)) { + if (expectMockArguments && !expectUsing + && (CobolVerbs.isCobolVerb(testSuiteToken)|| testSuiteToken.equals("END-MOCK"))) { // NEW: In this case we expected cobol verbs and stop counting arguments // update the keyword as fieldname was assumed // keyword = Keywords.getKeywordFor(testSuiteToken, false); expectMockArguments = false; expectUsing = false; - handleEndOfMockStatement(testSuiteReader, testSuiteToken, false); - testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); + if (!verifyInProgress) { + ignoreCobolStatementAndFieldNameKeyAction = true; + handleEndOfMockStatement(testSuiteReader, testSuiteToken, false); + } + if(testSuiteToken.equals("END-MOCK") ){ + testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); + } continue; } From 2eda671a9e80057911c73b5cd9325ca9fde2f452 Mon Sep 17 00:00:00 2001 From: issacto Date: Thu, 29 Jun 2023 18:26:46 +0800 Subject: [PATCH 090/180] update test case Signed-off-by: issacto --- .../java/org/openmainframeproject/cobolcheck/MockingTest.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java b/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java index 817d51ae..4de87a68 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java @@ -260,7 +260,6 @@ public void call_mock_gets_correct_lines_and_ignores_end_call() throws IOExcepti String str7 = " END-MOCK"; List expected = new ArrayList<>(); - expected.add(" "); expected.add(" MOVE \"something\" TO this"); expected.add(" MOVE \"something else\" TO other"); From f993686655d69a1b8b20b273ac8080cf64d58373 Mon Sep 17 00:00:00 2001 From: issacto Date: Mon, 3 Jul 2023 01:11:56 +0800 Subject: [PATCH 091/180] update test case Signed-off-by: issacto --- .../cobolcheck/TestSuiteErrorLogTest.java | 48 ++++++++++++++++++- 1 file changed, 47 insertions(+), 1 deletion(-) diff --git a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java index abc96f35..26a8bbc9 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java @@ -296,7 +296,7 @@ public void it_catches_unexpected_keyword_at_the_end_of_mock_context() { } @Test - public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_arguments() { + public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_arguments_1() { testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); testSuite.append(" TESTCASE \"Name of test case\""+ Constants.NEWLINE); testSuite.append(" MOCK CALL 'value' USING BY CONTENT VALUE-1, VALUE-2 ONCE END-MOCK"+ Constants.NEWLINE); @@ -315,6 +315,28 @@ public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_argume assertEquals(expectedResult, actualResult); } + @Test + public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_arguments_2() { + testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); + testSuite.append(" TESTCASE \"Name of test case\""+ Constants.NEWLINE); + testSuite.append(" MOCK CALL 'value' USING BY CONTENT VALUE-1, VALUE-2 VERIFY END-MOCK"+ Constants.NEWLINE); + + String expectedResult = ""; + expectedResult += "SYNTAX ERROR in file: null:2:13:" + Constants.NEWLINE; + expectedResult += "Unexpected token on line 2, index 13:" + Constants.NEWLINE; + expectedResult += "Cannot have Cobol Check keyword inside a MOCK block" + Constants.NEWLINE+ Constants.NEWLINE; + + assertThrows(TestSuiteSyntaxException.class, () -> { + testSuiteParser.getParsedTestSuiteLines(new BufferedReader(new StringReader(testSuite.toString())), + numericFields); + }); + + String actualResult = testSuiteErrorLog.getErrorMessages(); + System.out.println("actualResult: "); + System.out.println(actualResult); + assertEquals(expectedResult, actualResult); + } + @Test public void it_catches_unexpected_keyword_in_an_expect_context() { testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); @@ -392,6 +414,30 @@ public void it_catches_unexpected_keyword_after_verify() { assertEquals(expectedResult, actualResult); } + @Test + public void it_catches_unexpected_keyword_after_verify_() { + testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); + testSuite.append(" TESTCASE \"Name of test case\""+ Constants.NEWLINE); + testSuite.append(" MOCK CALL 'PROG3' END-MOCK"+ Constants.NEWLINE); + testSuite.append(" VERIFY CALL 'PROG3' HAPPENED ONCE"+ Constants.NEWLINE); + testSuite.append(" BEFORE EACH"+ Constants.NEWLINE); + + String expectedResult = ""; + expectedResult += "SYNTAX ERROR in file: null:5:8:" + Constants.NEWLINE; + expectedResult += "Unexpected token on line 5, index 8:" + Constants.NEWLINE; + expectedResult += "Following classified as " + Constants.NEWLINE; + expectedResult += "Expected classification: [cobol-token, TESTSUITE, TESTCASE, MOCK, VERIFY, EXPECT]" + Constants.NEWLINE; + expectedResult += "Got classified as " + Constants.NEWLINE + Constants.NEWLINE; + + assertThrows(TestSuiteSyntaxException.class, () -> { + testSuiteParser.getParsedTestSuiteLines(new BufferedReader(new StringReader(testSuite.toString())), + numericFields); + }); + + String actualResult = testSuiteErrorLog.getErrorMessages(); + assertEquals(expectedResult, actualResult); + } + @Test public void it_catches_type_mismatch_of_numeric_and_alphanumeric_for_explicit_numeric_in_unit_test() { testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); From 47afa1cbc454eb9079445b3ef6e47e5f78c4b36a Mon Sep 17 00:00:00 2001 From: issacto Date: Mon, 3 Jul 2023 18:03:12 +0800 Subject: [PATCH 092/180] update test result Signed-off-by: issacto --- .../cobolcheck/TestSuiteErrorLogTest.java | 28 +++++++++++++------ 1 file changed, 20 insertions(+), 8 deletions(-) diff --git a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java index 26a8bbc9..9f8c2518 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java @@ -302,9 +302,16 @@ public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_argume testSuite.append(" MOCK CALL 'value' USING BY CONTENT VALUE-1, VALUE-2 ONCE END-MOCK"+ Constants.NEWLINE); String expectedResult = ""; - expectedResult += "SYNTAX ERROR in file: null:2:13:" + Constants.NEWLINE; - expectedResult += "Unexpected token on line 2, index 13:" + Constants.NEWLINE; - expectedResult += "Cannot have Cobol Check keyword inside a MOCK block" + Constants.NEWLINE+ Constants.NEWLINE; + expectedResult += "SYNTAX ERROR in file: null:3:60:" + Constants.NEWLINE; + expectedResult += "Unexpected token on line 3, index 60:" + Constants.NEWLINE; + expectedResult += "Following classified as " + Constants.NEWLINE; + expectedResult += "Expected classification in the context of MOCK: [END-MOCK, fieldname, BY REFERENCE, BY CONTENT, BY VALUE, USING]" + Constants.NEWLINE; + expectedResult += "Got < ONCE> classified as < ONCE>" + Constants.NEWLINE+ Constants.NEWLINE; + expectedResult += "SYNTAX ERROR in file: null:3:11:" + Constants.NEWLINE; + expectedResult += "Unexpected token on line 3, index 11:" + Constants.NEWLINE; + expectedResult += "Following classified as " + Constants.NEWLINE; + expectedResult += "Expected classification in the context of MOCK: []" + Constants.NEWLINE; + expectedResult += "Got classified as " + Constants.NEWLINE+ Constants.NEWLINE; assertThrows(TestSuiteSyntaxException.class, () -> { testSuiteParser.getParsedTestSuiteLines(new BufferedReader(new StringReader(testSuite.toString())), @@ -322,9 +329,16 @@ public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_argume testSuite.append(" MOCK CALL 'value' USING BY CONTENT VALUE-1, VALUE-2 VERIFY END-MOCK"+ Constants.NEWLINE); String expectedResult = ""; - expectedResult += "SYNTAX ERROR in file: null:2:13:" + Constants.NEWLINE; - expectedResult += "Unexpected token on line 2, index 13:" + Constants.NEWLINE; - expectedResult += "Cannot have Cobol Check keyword inside a MOCK block" + Constants.NEWLINE+ Constants.NEWLINE; + expectedResult += "SYNTAX ERROR in file: null:3:60:" + Constants.NEWLINE; + expectedResult += "Unexpected token on line 3, index 60:" + Constants.NEWLINE; + expectedResult += "Following classified as " + Constants.NEWLINE; + expectedResult += "Expected classification in the context of MOCK: [END-MOCK, fieldname, BY REFERENCE, BY CONTENT, BY VALUE, USING]" + Constants.NEWLINE; + expectedResult += "Got classified as " + Constants.NEWLINE+ Constants.NEWLINE; + expectedResult += "SYNTAX ERROR in file: null:3:11:" + Constants.NEWLINE; + expectedResult += "Unexpected token on line 3, index 11:" + Constants.NEWLINE; + expectedResult += "Following classified as " + Constants.NEWLINE; + expectedResult += "Expected classification in the context of MOCK: []" + Constants.NEWLINE; + expectedResult += "Got classified as " + Constants.NEWLINE+ Constants.NEWLINE; assertThrows(TestSuiteSyntaxException.class, () -> { testSuiteParser.getParsedTestSuiteLines(new BufferedReader(new StringReader(testSuite.toString())), @@ -332,8 +346,6 @@ public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_argume }); String actualResult = testSuiteErrorLog.getErrorMessages(); - System.out.println("actualResult: "); - System.out.println(actualResult); assertEquals(expectedResult, actualResult); } From 5375ac251a28086ba1298e0dc46190bcd32f2bdd Mon Sep 17 00:00:00 2001 From: issacto Date: Tue, 4 Jul 2023 18:53:22 +0800 Subject: [PATCH 093/180] clean comment Signed-off-by: issacto --- .../cobolcheck/features/testSuiteParser/TestSuiteParser.java | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index c88a47de..6b8ae6c9 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -205,9 +205,8 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, if (expectMockArguments && !expectUsing && (CobolVerbs.isCobolVerb(testSuiteToken)|| testSuiteToken.equals("END-MOCK"))) { - // NEW: In this case we expected cobol verbs and stop counting arguments + // In this case we expected cobol verbs and stop mock arguments // update the keyword as fieldname was assumed - // keyword = Keywords.getKeywordFor(testSuiteToken, false); expectMockArguments = false; expectUsing = false; if (!verifyInProgress) { From 51f3ed3a8ad56bad89b7a1be9b2dc3935e58435a Mon Sep 17 00:00:00 2001 From: issacto Date: Wed, 5 Jul 2023 12:37:27 +0800 Subject: [PATCH 094/180] add test cases Signed-off-by: issacto --- .../cobolcheck/MockingTest.java | 40 +++++++++++++ .../cobolcheck/TestSuiteErrorLogTest.java | 58 ++++++++++++++++++- 2 files changed, 96 insertions(+), 2 deletions(-) diff --git a/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java b/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java index 4de87a68..d0eb42fb 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java @@ -295,6 +295,46 @@ public void call_mock_gets_correct_arguments() throws IOException { assertEquals(expected, mockRepository.getMocks().get(0).getArguments()); } + @Test + public void call_mock_gets_correct_arguments_with_commas() throws IOException { + String str1 = " TESTSUITE \"Name of test suite\""; + String str2 = " TESTCASE \"Name of test case\""; + String str3 = " MOCK CALL 'prog1' USING BY CONTENT VALUE-1 VALUE-2 VALUE-3"; + String str4 = " MOVE \"something\" TO this"; + String str5 = " MOVE \"something else\" TO other"; + String str6 = " END-MOCK"; + + List expected = new ArrayList<>(); + expected.add("CONTENT VALUE-1"); + expected.add("REFERENCE VALUE-2"); + expected.add("REFERENCE VALUE-3"); + + Mockito.when(mockedReader.readLine()).thenReturn(str1, str2, str3, str4, str5, str6, null); + + testSuiteParser.getParsedTestSuiteLines(mockedReader, numericFields); + assertEquals(expected, mockRepository.getMocks().get(0).getArguments()); + } + + @Test + public void call_mock_gets_correct_arguments_with_one_comma() throws IOException { + String str1 = " TESTSUITE \"Name of test suite\""; + String str2 = " TESTCASE \"Name of test case\""; + String str3 = " MOCK CALL 'prog1' USING BY CONTENT VALUE-1 VALUE-2, VALUE-3"; + String str4 = " MOVE \"something\" TO this"; + String str5 = " MOVE \"something else\" TO other"; + String str6 = " END-MOCK"; + + List expected = new ArrayList<>(); + expected.add("CONTENT VALUE-1"); + expected.add("REFERENCE VALUE-2"); + expected.add("REFERENCE VALUE-3"); + + Mockito.when(mockedReader.readLine()).thenReturn(str1, str2, str3, str4, str5, str6, null); + + testSuiteParser.getParsedTestSuiteLines(mockedReader, numericFields); + assertEquals(expected, mockRepository.getMocks().get(0).getArguments()); + } + @Test public void mock_gets_global_scope() throws IOException { String str1 = " TESTSUITE \"Name of test suite\""; diff --git a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java index 9f8c2518..6fee65e1 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java @@ -296,7 +296,7 @@ public void it_catches_unexpected_keyword_at_the_end_of_mock_context() { } @Test - public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_arguments_1() { + public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_arguments_and_commas_1() { testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); testSuite.append(" TESTCASE \"Name of test case\""+ Constants.NEWLINE); testSuite.append(" MOCK CALL 'value' USING BY CONTENT VALUE-1, VALUE-2 ONCE END-MOCK"+ Constants.NEWLINE); @@ -323,7 +323,7 @@ public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_argume } @Test - public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_arguments_2() { + public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_arguments_and_commas_2() { testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); testSuite.append(" TESTCASE \"Name of test case\""+ Constants.NEWLINE); testSuite.append(" MOCK CALL 'value' USING BY CONTENT VALUE-1, VALUE-2 VERIFY END-MOCK"+ Constants.NEWLINE); @@ -349,6 +349,60 @@ public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_argume assertEquals(expectedResult, actualResult); } + @Test + public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_arguments_without_commas_1() { + testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); + testSuite.append(" TESTCASE \"Name of test case\""+ Constants.NEWLINE); + testSuite.append(" MOCK CALL 'value' USING BY CONTENT VALUE-1 VALUE-2 ONCE END-MOCK"+ Constants.NEWLINE); + + String expectedResult = ""; + expectedResult += "SYNTAX ERROR in file: null:3:59:" + Constants.NEWLINE; + expectedResult += "Unexpected token on line 3, index 59:" + Constants.NEWLINE; + expectedResult += "Following classified as " + Constants.NEWLINE; + expectedResult += "Expected classification in the context of MOCK: [END-MOCK, fieldname, BY REFERENCE, BY CONTENT, BY VALUE, USING]" + Constants.NEWLINE; + expectedResult += "Got < ONCE> classified as < ONCE>" + Constants.NEWLINE+ Constants.NEWLINE; + expectedResult += "SYNTAX ERROR in file: null:3:11:" + Constants.NEWLINE; + expectedResult += "Unexpected token on line 3, index 11:" + Constants.NEWLINE; + expectedResult += "Following classified as " + Constants.NEWLINE; + expectedResult += "Expected classification in the context of MOCK: []" + Constants.NEWLINE; + expectedResult += "Got classified as " + Constants.NEWLINE+ Constants.NEWLINE; + + assertThrows(TestSuiteSyntaxException.class, () -> { + testSuiteParser.getParsedTestSuiteLines(new BufferedReader(new StringReader(testSuite.toString())), + numericFields); + }); + + String actualResult = testSuiteErrorLog.getErrorMessages(); + assertEquals(expectedResult, actualResult); + } + + @Test + public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_arguments_without_commas_2() { + testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); + testSuite.append(" TESTCASE \"Name of test case\""+ Constants.NEWLINE); + testSuite.append(" MOCK CALL 'value' USING BY CONTENT VALUE-1 VALUE-2 VERIFY END-MOCK"+ Constants.NEWLINE); + + String expectedResult = ""; + expectedResult += "SYNTAX ERROR in file: null:3:59:" + Constants.NEWLINE; + expectedResult += "Unexpected token on line 3, index 59:" + Constants.NEWLINE; + expectedResult += "Following classified as " + Constants.NEWLINE; + expectedResult += "Expected classification in the context of MOCK: [END-MOCK, fieldname, BY REFERENCE, BY CONTENT, BY VALUE, USING]" + Constants.NEWLINE; + expectedResult += "Got classified as " + Constants.NEWLINE+ Constants.NEWLINE; + expectedResult += "SYNTAX ERROR in file: null:3:11:" + Constants.NEWLINE; + expectedResult += "Unexpected token on line 3, index 11:" + Constants.NEWLINE; + expectedResult += "Following classified as " + Constants.NEWLINE; + expectedResult += "Expected classification in the context of MOCK: []" + Constants.NEWLINE; + expectedResult += "Got classified as " + Constants.NEWLINE+ Constants.NEWLINE; + + assertThrows(TestSuiteSyntaxException.class, () -> { + testSuiteParser.getParsedTestSuiteLines(new BufferedReader(new StringReader(testSuite.toString())), + numericFields); + }); + + String actualResult = testSuiteErrorLog.getErrorMessages(); + assertEquals(expectedResult, actualResult); + } + @Test public void it_catches_unexpected_keyword_in_an_expect_context() { testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); From a873cec63f6bf9d7771f2f9ac67f8bff6bd3bd13 Mon Sep 17 00:00:00 2001 From: Akash Kumar <91385321+AkashKumar7902@users.noreply.github.com> Date: Wed, 5 Jul 2023 21:38:17 +0530 Subject: [PATCH 095/180] Fixed cobolcheck cannot handle spaces in path Signed-off-by: Akash Kumar <91385321+AkashKumar7902@users.noreply.github.com> Signed-off-by: issacto --- scripts/windows_gnucobol_run_tests.cmd | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/windows_gnucobol_run_tests.cmd b/scripts/windows_gnucobol_run_tests.cmd index affff77e..94961874 100644 --- a/scripts/windows_gnucobol_run_tests.cmd +++ b/scripts/windows_gnucobol_run_tests.cmd @@ -4,4 +4,4 @@ rem rem Assumptions: rem rem GnuCOBOL 3.+ is installed and on the path. Its executable or alias or symlink is named "cobc". -cobc -x %* && %~dpn1 \ No newline at end of file +cobc -x %* && "%~dpn1" From ca1a235d87a5e73ca9636fed64e647775a1848be Mon Sep 17 00:00:00 2001 From: issacto Date: Mon, 3 Jul 2023 17:39:40 +0800 Subject: [PATCH 096/180] add default return code Signed-off-by: issacto --- .../openmainframeproject/cobolcheck/copybooks/CCHECKRESULTPD.CPY | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/resources/org/openmainframeproject/cobolcheck/copybooks/CCHECKRESULTPD.CPY b/src/main/resources/org/openmainframeproject/cobolcheck/copybooks/CCHECKRESULTPD.CPY index 343e0bda..c639d7e3 100644 --- a/src/main/resources/org/openmainframeproject/cobolcheck/copybooks/CCHECKRESULTPD.CPY +++ b/src/main/resources/org/openmainframeproject/cobolcheck/copybooks/CCHECKRESULTPD.CPY @@ -1,5 +1,6 @@ * CCHECKRESULTPD.CPY DISPLAY SPACE + MOVE 4 TO RETURN-CODE MOVE ==UT==TEST-CASE-COUNT TO ==UT==TEST-CASE-NUMBER DISPLAY ==UT==TEST-CASE-NUMBER ' TEST CASES WERE EXECUTED' MOVE ==UT==NUMBER-PASSED TO ==UT==TEST-CASE-NUMBER From 0a54a96cb844fc2df46ecb868b9277f3c558d456 Mon Sep 17 00:00:00 2001 From: issacto Date: Wed, 5 Jul 2023 10:10:16 +0800 Subject: [PATCH 097/180] add return code Signed-off-by: issacto --- .../cobolcheck/copybooks/CCHECKPARAGRAPHSPD.CPY | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/resources/org/openmainframeproject/cobolcheck/copybooks/CCHECKPARAGRAPHSPD.CPY b/src/main/resources/org/openmainframeproject/cobolcheck/copybooks/CCHECKPARAGRAPHSPD.CPY index be62dcc5..a4b080c2 100644 --- a/src/main/resources/org/openmainframeproject/cobolcheck/copybooks/CCHECKPARAGRAPHSPD.CPY +++ b/src/main/resources/org/openmainframeproject/cobolcheck/copybooks/CCHECKPARAGRAPHSPD.CPY @@ -239,6 +239,7 @@ . ==UT==INITIALIZE. MOVE SPACES TO ==UT==FILE-INFORMATION + MOVE 4 to RETURN-CODE . ==UT==END. From 25757d003b2e764feee8db2274567f7a877028c7 Mon Sep 17 00:00:00 2001 From: issacto Date: Wed, 5 Jul 2023 10:12:17 +0800 Subject: [PATCH 098/180] revert wrong return code Signed-off-by: issacto --- .../openmainframeproject/cobolcheck/copybooks/CCHECKRESULTPD.CPY | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/resources/org/openmainframeproject/cobolcheck/copybooks/CCHECKRESULTPD.CPY b/src/main/resources/org/openmainframeproject/cobolcheck/copybooks/CCHECKRESULTPD.CPY index c639d7e3..343e0bda 100644 --- a/src/main/resources/org/openmainframeproject/cobolcheck/copybooks/CCHECKRESULTPD.CPY +++ b/src/main/resources/org/openmainframeproject/cobolcheck/copybooks/CCHECKRESULTPD.CPY @@ -1,6 +1,5 @@ * CCHECKRESULTPD.CPY DISPLAY SPACE - MOVE 4 TO RETURN-CODE MOVE ==UT==TEST-CASE-COUNT TO ==UT==TEST-CASE-NUMBER DISPLAY ==UT==TEST-CASE-NUMBER ' TEST CASES WERE EXECUTED' MOVE ==UT==NUMBER-PASSED TO ==UT==TEST-CASE-NUMBER From c02ccc99c59a52a23f3a925f43389c917f8589b2 Mon Sep 17 00:00:00 2001 From: issacto Date: Thu, 6 Jul 2023 00:13:45 +0800 Subject: [PATCH 099/180] add test case Signed-off-by: issacto --- src/main/cobol/RETURNCODE.CBL | 21 +++++++++++++++++++++ src/test/cobol/RETURNCODE/ReturnCode.cut | 16 ++++++++++++++++ 2 files changed, 37 insertions(+) create mode 100644 src/main/cobol/RETURNCODE.CBL create mode 100644 src/test/cobol/RETURNCODE/ReturnCode.cut diff --git a/src/main/cobol/RETURNCODE.CBL b/src/main/cobol/RETURNCODE.CBL new file mode 100644 index 00000000..52bd360b --- /dev/null +++ b/src/main/cobol/RETURNCODE.CBL @@ -0,0 +1,21 @@ + IDENTIFICATION DIVISION. + PROGRAM-ID. RETURNCODE. + /**************************************************************** + * Program to exercise different mock statements and edge cases. + ***************************************************************** + ENVIRONMENT DIVISION. + INPUT-OUTPUT SECTION. + FILE-CONTROL. + DATA DIVISION. + WORKING-STORAGE SECTION. + 01 FILLER. + 05 VALUE-1 PIC X(80). + 05 VALUE-2 PIC X(80). + + PROCEDURE DIVISION. + + 000-MAKE-CALL. + MOVE "arg1" to VALUE-1 + MOVE "arg2" to VALUE-2 + CALL 'PROG1' + . \ No newline at end of file diff --git a/src/test/cobol/RETURNCODE/ReturnCode.cut b/src/test/cobol/RETURNCODE/ReturnCode.cut new file mode 100644 index 00000000..510c814b --- /dev/null +++ b/src/test/cobol/RETURNCODE/ReturnCode.cut @@ -0,0 +1,16 @@ + TestSuite "Test Return Code" + + TestCase "Return code should be 0" + MOCK CALL 'PROG1' + MOVE "Exit with return code 0" TO VALUE-1 + END-MOCK + PERFORM 000-MAKE-CALL + EXPECT VALUE-1 TO BE "Exit with return code 0" + + TestCase "Return code should be 4" + MOCK CALL 'PROG1' + MOVE "Exit with return code 4" TO VALUE-1 + GOBACK. + END-MOCK + PERFORM 000-MAKE-CALL + EXPECT VALUE-1 TO BE "Exit with return code 4" From 7bae939f44301f6c5998252a22b2c967d9ef7174 Mon Sep 17 00:00:00 2001 From: issacto Date: Thu, 6 Jul 2023 23:23:49 +0800 Subject: [PATCH 100/180] add tests Signed-off-by: issacto --- src/test/cobol/RETURNCODE/ReturnCode-0.cut | 8 ++++++++ src/test/cobol/RETURNCODE/ReturnCode-4.cut | 9 +++++++++ src/test/cobol/RETURNCODE/ReturnCode.cut | 16 ---------------- 3 files changed, 17 insertions(+), 16 deletions(-) create mode 100644 src/test/cobol/RETURNCODE/ReturnCode-0.cut create mode 100644 src/test/cobol/RETURNCODE/ReturnCode-4.cut delete mode 100644 src/test/cobol/RETURNCODE/ReturnCode.cut diff --git a/src/test/cobol/RETURNCODE/ReturnCode-0.cut b/src/test/cobol/RETURNCODE/ReturnCode-0.cut new file mode 100644 index 00000000..ccc022de --- /dev/null +++ b/src/test/cobol/RETURNCODE/ReturnCode-0.cut @@ -0,0 +1,8 @@ + TestSuite "Test Return Code without GOBACK in MOCK " + + TestCase "Return code should be 0" + MOCK CALL 'PROG1' + MOVE "Exit with return code 0" TO VALUE-1 + END-MOCK + PERFORM 000-MAKE-CALL + EXPECT VALUE-1 TO BE "Exit with return code 0" \ No newline at end of file diff --git a/src/test/cobol/RETURNCODE/ReturnCode-4.cut b/src/test/cobol/RETURNCODE/ReturnCode-4.cut new file mode 100644 index 00000000..e1abb978 --- /dev/null +++ b/src/test/cobol/RETURNCODE/ReturnCode-4.cut @@ -0,0 +1,9 @@ + TestSuite "Test Return Code with GOBACK in MOCK " + + TestCase "Return code should be 4 (Should fail) " + MOCK CALL 'PROG1' + MOVE "Exit with return code 4" TO VALUE-1 + GOBACK. + END-MOCK + PERFORM 000-MAKE-CALL + EXPECT VALUE-1 TO BE "Exit with return code 4" diff --git a/src/test/cobol/RETURNCODE/ReturnCode.cut b/src/test/cobol/RETURNCODE/ReturnCode.cut deleted file mode 100644 index 510c814b..00000000 --- a/src/test/cobol/RETURNCODE/ReturnCode.cut +++ /dev/null @@ -1,16 +0,0 @@ - TestSuite "Test Return Code" - - TestCase "Return code should be 0" - MOCK CALL 'PROG1' - MOVE "Exit with return code 0" TO VALUE-1 - END-MOCK - PERFORM 000-MAKE-CALL - EXPECT VALUE-1 TO BE "Exit with return code 0" - - TestCase "Return code should be 4" - MOCK CALL 'PROG1' - MOVE "Exit with return code 4" TO VALUE-1 - GOBACK. - END-MOCK - PERFORM 000-MAKE-CALL - EXPECT VALUE-1 TO BE "Exit with return code 4" From 4b848903d9caf80edc3711ded1ad50261d2b6ab7 Mon Sep 17 00:00:00 2001 From: issacto Date: Fri, 7 Jul 2023 12:06:53 +0800 Subject: [PATCH 101/180] add test cases Signed-off-by: issacto --- src/test/cobol/MOCKTEST/MockCallTest.cut | 40 ++++++++++++++ .../cobolcheck/MockIT.java | 52 +++++++++++++++++++ .../cobolcheck/MockingTest.java | 2 +- .../cobolcheck/TestSuiteErrorLogTest.java | 49 +++++++++++++++++ 4 files changed, 142 insertions(+), 1 deletion(-) diff --git a/src/test/cobol/MOCKTEST/MockCallTest.cut b/src/test/cobol/MOCKTEST/MockCallTest.cut index 569f8e01..7a2df853 100644 --- a/src/test/cobol/MOCKTEST/MockCallTest.cut +++ b/src/test/cobol/MOCKTEST/MockCallTest.cut @@ -67,6 +67,46 @@ BY VALUE VALUE-2, VALUE-3 HAPPENED 2 TIMES + + TestCase "Call mock with content reference for arguments with one comma work" + MOCK CALL 'PROG3' USING + BY CONTENT VALUE-1, + BY VALUE VALUE-2 + VALUE-3 + MOVE "content" TO VALUE-1 + MOVE "value" TO VALUE-2 + MOVE "reference" TO VALUE-3 + END-MOCK + PERFORM 800-MAKE-CALL + EXPECT VALUE-1 TO BE "content" + EXPECT VALUE-2 TO BE "value" + EXPECT VALUE-3 TO BE "reference" + VERIFY CALL 'PROG3' USING + BY CONTENT VALUE-1, + BY VALUE VALUE-2, + VALUE-3 + HAPPENED 2 TIMES + + + TestCase "Call mock with content reference for arguments without comma work" + MOCK CALL 'PROG3' USING + BY CONTENT VALUE-1 + BY VALUE VALUE-2 + VALUE-3 + MOVE "content" TO VALUE-1 + MOVE "value" TO VALUE-2 + MOVE "reference" TO VALUE-3 + END-MOCK + PERFORM 800-MAKE-CALL + EXPECT VALUE-1 TO BE "content" + EXPECT VALUE-2 TO BE "value" + EXPECT VALUE-3 TO BE "reference" + VERIFY CALL 'PROG3' USING + BY CONTENT VALUE-1, + BY VALUE VALUE-2, + VALUE-3 + HAPPENED 2 TIMES + TestCase "Paragraph mock is called and call mock is ignored" MOCK CALL 'PROG3' USING diff --git a/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java b/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java index 98c2159c..e6032d05 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java @@ -206,6 +206,58 @@ public void it_inserts_call_mocks_correctly() throws IOException { assertEquals(getTrimmedList(expected4), actual); } + @Test + public void it_inserts_call_mocks_without_commas_correctly() throws IOException { + String s1 = " WORKING-STORAGE SECTION."; + String s2 = " PROCEDURE DIVISION."; + String s3 = " 000-START SECTION."; + String s4 = " MOVE \"Value1\" to VALUE-1"; + String s5 = " EXIT SECTION."; + String s6 = " 100-WELCOME SECTION."; + String s7 = " CALL 'prog1' USING"; + String s8 = " BY CONTENT VALUE-1, VALUE-2."; + String s9 = " MOVE \"Hello\" to VALUE-1."; + String s10 = " 200-GOODBYE SECTION."; + String s11 = " MOVE \"Bye\" to VALUE-1"; + String s12 = " CALL bogus USING VALUE-1"; + String s13 = ""; + String s14 = " CALL 'prog2' USING VALUE-1"; + String s15 = " CALL 'prog2' USING VALUE-1."; + String s16 = " ."; + String s17 = " * Ending with comment"; + + String t1 = " TestSuite \"Mocking tests\""; + String t2 = " MOCK SECTION 100-WELCOME"; + String t3 = " MOVE \"mock\" TO VALUE-1"; + String t4 = " END-MOCK"; + String t5 = " MOCK CALL 'prog2' USING VALUE-1"; + String t6 = " MOVE \"prog2\" TO VALUE-1"; + String t7 = " END-MOCK"; + String t8 = " TestCase \"Local mock overwrites global mock\""; + String t9 = " MOCK SECTION 200-GOODBYE"; + String t10 = " MOVE \"Goodbye\" TO VALUE-1"; + String t11 = " END-MOCK"; + String t12 = " PERFORM 200-GOODBYE"; + String t13 = " Expect VALUE-1 to be \"Goodbye\""; + String t14 = " TestCase \"Simply a test\""; + String t15 = " MOCK SECTION 000-START"; + String t16 = " END-MOCK"; + String t17 = " MOCK CALL 'prog1' USING BY CONTENT VALUE-1 VALUE-2"; + String t18 = " END-MOCK"; + String t19 = " MOCK SECTION 200-GOODBYE"; + String t20 = " END-MOCK"; + + Mockito.when(mockedInterpreterReader.readLine()).thenReturn(s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, + s11, s12, s13, s14, s15, s16, s17, null); + Mockito.when(mockedParserReader.readLine()).thenReturn(t1, t2, t3, t4, t5, t6, t7, t8, t9, t10, t11, + t12, t13, t14, t15, t16, t17, t18, t19, t20, null); + + generator = new Generator(interpreterController, writerController, testSuiteParserController); + + List actual = getTrimmedList(removeBoilerPlateCode(writer.toString(), boilerPlateTags)); + assertEquals(getTrimmedList(expected4), actual); + } + private List getTrimmedList(String text){ String[] lines = text.split(Constants.NEWLINE); List result = new ArrayList<>(); diff --git a/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java b/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java index d0eb42fb..5f2a9fb8 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/MockingTest.java @@ -296,7 +296,7 @@ public void call_mock_gets_correct_arguments() throws IOException { } @Test - public void call_mock_gets_correct_arguments_with_commas() throws IOException { + public void call_mock_gets_correct_arguments_without_commas() throws IOException { String str1 = " TESTSUITE \"Name of test suite\""; String str2 = " TESTCASE \"Name of test case\""; String str3 = " MOCK CALL 'prog1' USING BY CONTENT VALUE-1 VALUE-2 VALUE-3"; diff --git a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java index 6fee65e1..70eccf56 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java @@ -504,6 +504,55 @@ public void it_catches_unexpected_keyword_after_verify_() { assertEquals(expectedResult, actualResult); } + @Test + public void it_catches_unexpected_keyword_after_verify_without_commas() { + testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); + testSuite.append(" TESTCASE \"Name of test case\""+ Constants.NEWLINE); + testSuite.append(" MOCK CALL 'PROG3' END-MOCK"+ Constants.NEWLINE); + testSuite.append(" VERIFY CALL 'PROG3' HAPPENED ONCE"+ Constants.NEWLINE); + testSuite.append(" BEFORE EACH"+ Constants.NEWLINE); + + String expectedResult = ""; + expectedResult += "SYNTAX ERROR in file: null:5:8:" + Constants.NEWLINE; + expectedResult += "Unexpected token on line 5, index 8:" + Constants.NEWLINE; + expectedResult += "Following classified as " + Constants.NEWLINE; + expectedResult += "Expected classification: [cobol-token, TESTSUITE, TESTCASE, MOCK, VERIFY, EXPECT]" + Constants.NEWLINE; + expectedResult += "Got classified as " + Constants.NEWLINE + Constants.NEWLINE; + + assertThrows(TestSuiteSyntaxException.class, () -> { + testSuiteParser.getParsedTestSuiteLines(new BufferedReader(new StringReader(testSuite.toString())), + numericFields); + }); + + String actualResult = testSuiteErrorLog.getErrorMessages(); + assertEquals(expectedResult, actualResult); + } + + @Test + public void it_catches_unexpected_keyword_after_verify_without_commas_() { + testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); + testSuite.append(" TESTCASE \"Name of test case\""+ Constants.NEWLINE); + testSuite.append(" MOCK CALL 'PROG3' END-MOCK"+ Constants.NEWLINE); + testSuite.append(" VERIFY CALL 'PROG3' HAPPENED ONCE"+ Constants.NEWLINE); + testSuite.append(" BEFORE EACH"+ Constants.NEWLINE); + + String expectedResult = ""; + expectedResult += "SYNTAX ERROR in file: null:5:8:" + Constants.NEWLINE; + expectedResult += "Unexpected token on line 5, index 8:" + Constants.NEWLINE; + expectedResult += "Following classified as " + Constants.NEWLINE; + expectedResult += "Expected classification: [cobol-token, TESTSUITE, TESTCASE, MOCK, VERIFY, EXPECT]" + Constants.NEWLINE; + expectedResult += "Got classified as " + Constants.NEWLINE + Constants.NEWLINE; + + assertThrows(TestSuiteSyntaxException.class, () -> { + testSuiteParser.getParsedTestSuiteLines(new BufferedReader(new StringReader(testSuite.toString())), + numericFields); + }); + + String actualResult = testSuiteErrorLog.getErrorMessages(); + assertEquals(expectedResult, actualResult); + } + + @Test public void it_catches_type_mismatch_of_numeric_and_alphanumeric_for_explicit_numeric_in_unit_test() { testSuite.append(" TESTSUITE \"Name of test suite\""+ Constants.NEWLINE); From 40613a8d8fc3479464e23863061b2206f11058ed Mon Sep 17 00:00:00 2001 From: issacto Date: Fri, 14 Jul 2023 15:20:37 +0800 Subject: [PATCH 102/180] add when other section Signed-off-by: issacto --- src/main/cobol/TESTNESTED.CBL | 22 ++++++++ .../features/interpreter/CobolReader.java | 23 +++++++++ .../interpreter/InterpreterController.java | 33 ++++++++++-- .../cobolcheck/workers/Generator.java | 51 ++++++++++++++----- src/test/cobol/TESTNESTED/TestNested.cut | 9 ++++ 5 files changed, 122 insertions(+), 16 deletions(-) create mode 100644 src/main/cobol/TESTNESTED.CBL create mode 100644 src/test/cobol/TESTNESTED/TestNested.cut diff --git a/src/main/cobol/TESTNESTED.CBL b/src/main/cobol/TESTNESTED.CBL new file mode 100644 index 00000000..1d2e1073 --- /dev/null +++ b/src/main/cobol/TESTNESTED.CBL @@ -0,0 +1,22 @@ + IDENTIFICATION DIVISION. + PROGRAM-ID. TESTNESTED. + ENVIRONMENT DIVISION. + INPUT-OUTPUT SECTION. + FILE-CONTROL. + DATA DIVISION. + + WORKING-STORAGE SECTION. + 01 FILLER. + 05 ONE-DIGIT PIC X(80). + + PROCEDURE DIVISION. + MOCK-SECTION-WITH-ERROR SECTION. + EVALUATE TRUE + WHEN ONE-DIGIT = 1 + MOVE 2 TO ONE-DIGIT + WHEN OTHER + MOVE 5 TO ONE-DIGIT + END-EVALUATE. + MOVE 9 TO ONE-DIGIT + EXIT SECTION + . diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/CobolReader.java b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/CobolReader.java index 5ed7ccea..4a093ab8 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/CobolReader.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/CobolReader.java @@ -21,6 +21,8 @@ public class CobolReader { private List nextLines; private List currentStatement; private int lineNumber; + private boolean isSection = false; + private List sectionLines; private String lineJustEneterd = null; @@ -30,6 +32,7 @@ public CobolReader(BufferedReader sourceReader) { tokenExtractor = new StringTokenizerExtractor(); nextLines = new ArrayList<>(); currentStatement = new ArrayList<>(); + sectionLines = new ArrayList<>(); } State getState() {return state; } @@ -284,5 +287,25 @@ boolean isFlagSet(String partOfProgram){ return state.getFlags().get(partOfProgram).isSet(); } + void setIsSection(boolean value){ + this.isSection=value; + } + + boolean getIsSection(){ + return this.isSection; + } + + void addSectionLines(String line){ + sectionLines.add(line); + } + + List getSectionLines(){ + return sectionLines; + } + + void removeSectionLines(){ + sectionLines.clear(); + } + } diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java index 91988963..69143ff1 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java @@ -4,6 +4,7 @@ import org.openmainframeproject.cobolcheck.exceptions.PossibleInternalLogicErrorException; import org.openmainframeproject.cobolcheck.services.Config; import org.openmainframeproject.cobolcheck.services.Messages; +import org.openmainframeproject.cobolcheck.services.StringHelper; import org.openmainframeproject.cobolcheck.services.Constants; import org.openmainframeproject.cobolcheck.services.cobolLogic.*; import org.openmainframeproject.cobolcheck.services.log.Log; @@ -25,6 +26,8 @@ public class InterpreterController { private List possibleMockArgs; private boolean insideSectionOrParagraphMockBody; private TreeMap currentDataStructure; + private List sectionContent; + private final String stubTag; public InterpreterController(BufferedReader sourceReader) { if (sourceReader == null) { @@ -36,6 +39,8 @@ public InterpreterController(BufferedReader sourceReader) { numericFields = new NumericFields(); tokenExtractor = new StringTokenizerExtractor(); currentDataStructure = new TreeMap<>(); + sectionContent = new ArrayList <> (); + stubTag = Config.getStubTag(); } //Getters for lists of specific source lines @@ -177,8 +182,6 @@ public String interpretNextLine(){ } catch (IOException ex){ throw new CobolSourceCouldNotBeReadException(ex); } - - //Current line might change from when it was originally read return reader.getCurrentLine().getUnNumberedString(); } @@ -209,7 +212,7 @@ private void updateDependencies(CobolLine line) throws IOException { if (Interpreter.shouldLineBeReadAsStatement(line, reader.getState())){ currentStatement = reader.readTillEndOfStatement(); } else { - currentStatement.add(line); + currentStatement.add(line); } if (reader.isFlagSet(Constants.SPECIAL_NAMES_PARAGRAPH)){ @@ -284,8 +287,9 @@ private void updatePossibleMock(CobolLine line) throws IOException { private void updatePossibleStub(CobolLine line) throws IOException { if (Interpreter.shouldLineBeStubbed(line, reader.getState())) { String stubEndToken = Interpreter.getStubEndToken(line, reader.getState()); - if (stubEndToken != null) + if (stubEndToken != null) { reader.readTillHitToken(stubEndToken, false); + } } } @@ -502,4 +506,25 @@ private void resetPossibleMockValues(){ possibleMockIdentifier = null; possibleMockType = null; } + + public List getSectionLines(){ + return reader.getSectionLines(); + } + + public void removeSectionLines(){ + reader.removeSectionLines(); + } + + public void addSectionLine(){ + if(Interpreter.shouldLineBeStubbed(reader.getCurrentLine(), reader.getState())) reader.addSectionLines(StringHelper.stubLine(reader.getCurrentLine().getUnNumberedString(), stubTag)); + else reader.addSectionLines(reader.getCurrentLine().getUnNumberedString()); + } + + public void addSectionLines(List lines){ + for (String line : lines){ + reader.addSectionLines(line); + } + } + + } diff --git a/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java b/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java index c3b55297..0f376222 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java @@ -1,19 +1,23 @@ package org.openmainframeproject.cobolcheck.workers; +import java.io.BufferedReader; +import java.io.File; +import java.io.IOException; +import java.io.Reader; +import java.io.Writer; +import java.util.List; + import org.openmainframeproject.cobolcheck.exceptions.CobolSourceCouldNotBeReadException; import org.openmainframeproject.cobolcheck.exceptions.PossibleInternalLogicErrorException; import org.openmainframeproject.cobolcheck.features.interpreter.InterpreterController; +import org.openmainframeproject.cobolcheck.features.prepareMerge.PrepareMergeController; import org.openmainframeproject.cobolcheck.features.testSuiteParser.TestSuiteParserController; import org.openmainframeproject.cobolcheck.features.writer.WriterController; -import org.openmainframeproject.cobolcheck.features.prepareMerge.PrepareMergeController; import org.openmainframeproject.cobolcheck.services.Constants; import org.openmainframeproject.cobolcheck.services.Messages; import org.openmainframeproject.cobolcheck.services.RunInfo; import org.openmainframeproject.cobolcheck.services.log.Log; -import java.io.*; -import java.util.*; - /** * This class merges a Test Suite (a text file) with the source of the Cobol program to be tested, * producing a Cobol program with the unit test cases embedded in it. @@ -29,6 +33,9 @@ public class Generator { private boolean workingStorageHasEnded; List matchingTestDirectories; + + private String currentIdentifier; + private String currentMockType; public Generator() { } @@ -40,7 +47,9 @@ public Generator(InterpreterController interpreter, WriterController writerContr this.interpreter = interpreter; this.writerController = writerController; this.testSuiteParserController = testSuiteParserController; + this.currentMockType=null; mergeTestSuite(); + } @@ -88,12 +97,15 @@ public void prepareAndRunMerge(String programName, String testFileNames) { private void mergeTestSuite() { String sourceLine; try { - while ((sourceLine = interpreter.interpretNextLine()) != null) { + while ((sourceLine = interpreter.interpretNextLine()) != null) { processingBeforeEchoingSourceLineToOutput(); + if(interpreter.isInsideSectionOrParagraphMockBody()){ + interpreter.addSectionLine(); + } sourceLine = tryInsertEndEvaluateAtMockedCompomentEnd(sourceLine); - - writeToSource(sourceLine); - + if(!interpreter.isInsideSectionOrParagraphMockBody()){ + writeToSource(sourceLine); + } processingAfterEchoingSourceLineToOutput(); } testSuiteParserController.logUnusedMocks(); @@ -118,7 +130,6 @@ private void processingBeforeEchoingSourceLineToOutput() throws IOException { if (!workingStorageHasEnded && interpreter.isCurrentLineEndingWorkingStorageSection()) { if (!testSuiteParserController.hasWorkingStorageTestCodeBeenInserted()) { writerController.writeLine(testSuiteParserController.getWorkingStorageHeader()); - writerController.writeLines(testSuiteParserController.getWorkingStorageTestCode( interpreter.getFileSectionStatements())); } @@ -137,8 +148,10 @@ private String tryInsertEndEvaluateAtMockedCompomentEnd(String sourceLine) throw if (interpreter.isInsideSectionOrParagraphMockBody()){ if (interpreter.isCurrentLineEndingSectionOrParagraph()){ if (interpreter.canWriteEndEvaluateBeforeCurrentLine()){ + writeWhenOtherSection(sourceLine); + interpreter.removeSectionLines(); interpreter.setInsideSectionOrParagraphMockBody(false); - writerController.writeLines(testSuiteParserController.getEndEvaluateLine()); + return ""; } else return sourceLine.replace(".", ""); @@ -197,9 +210,14 @@ private void processingAfterEchoingSourceLineToOutput() throws IOException { String type = interpreter.getPossibleMockType(); List arguments = interpreter.getPossibleMockArgs(); if (testSuiteParserController.mockExistsFor(identifier, type, arguments)){ - writerController.writeLines(testSuiteParserController.generateMockPerformCalls(identifier, type, arguments)); - if (type.equals(Constants.SECTION_TOKEN) || type.equals(Constants.PARAGRAPH_TOKEN)) + if(interpreter.isInsideSectionOrParagraphMockBody()){ + interpreter.addSectionLines(testSuiteParserController.generateMockPerformCalls(identifier, type, arguments)); + }else writerController.writeLines(testSuiteParserController.generateMockPerformCalls(identifier, type, arguments)); + if (type.equals(Constants.SECTION_TOKEN) || type.equals(Constants.PARAGRAPH_TOKEN)){ + this.currentIdentifier = identifier; + this.currentMockType=interpreter.getPossibleMockType(); interpreter.setInsideSectionOrParagraphMockBody(true); + } } } } @@ -210,4 +228,13 @@ private void closeReadersAndWriters(String programName) { writerController.closeWriter(programName); } + private void writeWhenOtherSection(String sourceLine) throws IOException{ + writerController.writeLine(String.format(" PERFORM %s-WHEN-OTHER", currentIdentifier)); + writerController.writeLines(testSuiteParserController.getEndEvaluateLine()); + writerController.writeLine(sourceLine); + writerController.writeLine("");; + if(currentMockType.equals(Constants.SECTION_TOKEN)) writerController.writeLine(String.format(" %s-WHEN-OTHER SECTION.", currentIdentifier)); + else writerController.writeLine(String.format(" %s-WHEN-OTHER.", currentIdentifier)); + writerController.writeLines(interpreter.getSectionLines()); + } } diff --git a/src/test/cobol/TESTNESTED/TestNested.cut b/src/test/cobol/TESTNESTED/TestNested.cut new file mode 100644 index 00000000..87952a9f --- /dev/null +++ b/src/test/cobol/TESTNESTED/TestNested.cut @@ -0,0 +1,9 @@ + TestSuite "Test Mock" + + TestCase "Test Mock" + MOVE 5 TO ONE-DIGIT + MOCK SECTION MOCK-SECTION-WITH-ERROR + MOVE 3 TO ONE-DIGIT + END-MOCK + PERFORM MOCK-SECTION-WITH-ERROR + EXPECT ONE-DIGIT TO BE 3 From ef3427594d785f6b6116e7c637b3aca5057827c7 Mon Sep 17 00:00:00 2001 From: issacto Date: Sat, 15 Jul 2023 10:20:31 +0800 Subject: [PATCH 103/180] modify tests for when other section Signed-off-by: issacto --- .../features/interpreter/CobolReader.java | 2 +- .../interpreter/InterpreterController.java | 14 ++- .../cobolcheck/workers/Generator.java | 7 +- .../cobolcheck/MockIT.java | 108 ++++++++++++------ 4 files changed, 88 insertions(+), 43 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/CobolReader.java b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/CobolReader.java index 4a093ab8..8441770c 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/CobolReader.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/CobolReader.java @@ -295,7 +295,7 @@ boolean getIsSection(){ return this.isSection; } - void addSectionLines(String line){ + void addWhenOtherSectionLines(String line){ sectionLines.add(line); } diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java index 69143ff1..e220c29e 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java @@ -515,14 +515,18 @@ public void removeSectionLines(){ reader.removeSectionLines(); } - public void addSectionLine(){ - if(Interpreter.shouldLineBeStubbed(reader.getCurrentLine(), reader.getState())) reader.addSectionLines(StringHelper.stubLine(reader.getCurrentLine().getUnNumberedString(), stubTag)); - else reader.addSectionLines(reader.getCurrentLine().getUnNumberedString()); + public void addWhenOtherSectionLine(){ + if(Interpreter.shouldLineBeStubbed(reader.getCurrentLine(), reader.getState())) reader.addWhenOtherSectionLines(StringHelper.stubLine(reader.getCurrentLine().getUnNumberedString(), stubTag)); + else reader.addWhenOtherSectionLines(reader.getCurrentLine().getUnNumberedString()); } - public void addSectionLines(List lines){ + public void addWhenOtherSectionLine(String line){ + reader.addWhenOtherSectionLines(line); + } + + public void addWhenOtherSectionLines(List lines){ for (String line : lines){ - reader.addSectionLines(line); + reader.addWhenOtherSectionLines(line); } } diff --git a/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java b/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java index 0f376222..082ae87b 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java @@ -100,7 +100,7 @@ private void mergeTestSuite() { while ((sourceLine = interpreter.interpretNextLine()) != null) { processingBeforeEchoingSourceLineToOutput(); if(interpreter.isInsideSectionOrParagraphMockBody()){ - interpreter.addSectionLine(); + interpreter.addWhenOtherSectionLine(); } sourceLine = tryInsertEndEvaluateAtMockedCompomentEnd(sourceLine); if(!interpreter.isInsideSectionOrParagraphMockBody()){ @@ -211,7 +211,10 @@ private void processingAfterEchoingSourceLineToOutput() throws IOException { List arguments = interpreter.getPossibleMockArgs(); if (testSuiteParserController.mockExistsFor(identifier, type, arguments)){ if(interpreter.isInsideSectionOrParagraphMockBody()){ - interpreter.addSectionLines(testSuiteParserController.generateMockPerformCalls(identifier, type, arguments)); + interpreter.addWhenOtherSectionLines(testSuiteParserController.generateMockPerformCalls(identifier, type, arguments)); + if (type.equals(Constants.CALL_TOKEN)){ + interpreter.addWhenOtherSectionLine(" CONTINUE"); + } }else writerController.writeLines(testSuiteParserController.generateMockPerformCalls(identifier, type, arguments)); if (type.equals(Constants.SECTION_TOKEN) || type.equals(Constants.PARAGRAPH_TOKEN)){ this.currentIdentifier = identifier; diff --git a/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java b/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java index e6032d05..cf1fcef0 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java @@ -205,6 +205,7 @@ public void it_inserts_call_mocks_correctly() throws IOException { assertEquals(getTrimmedList(expected4), actual); } +<<<<<<< HEAD @Test public void it_inserts_call_mocks_without_commas_correctly() throws IOException { @@ -258,6 +259,9 @@ public void it_inserts_call_mocks_without_commas_correctly() throws IOException assertEquals(getTrimmedList(expected4), actual); } +======= + +>>>>>>> modify tests for when other section private List getTrimmedList(String text){ String[] lines = text.split(Constants.NEWLINE); List result = new ArrayList<>(); @@ -353,10 +357,15 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " ALSO ANY " + Constants.NEWLINE + " PERFORM UT-1-0-1-MOCK " + Constants.NEWLINE + " WHEN OTHER " + Constants.NEWLINE + + " PERFORM 000-START-WHEN-OTHER " + Constants.NEWLINE + + " END-EVALUATE " + Constants.NEWLINE + + " . " + Constants.NEWLINE + + " " + Constants.NEWLINE + + " 000-START-WHEN-OTHER SECTION. " + Constants.NEWLINE + " MOVE \"Value1\" to VALUE-1 " + Constants.NEWLINE + " EXIT SECTION " + Constants.NEWLINE + - " END-EVALUATE " + Constants.NEWLINE + - " . " + Constants.NEWLINE; + " . " + Constants.NEWLINE+ + " "; private String expected2 = " WORKING-STORAGE SECTION. " + Constants.NEWLINE + @@ -491,41 +500,56 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " 000-START SECTION. " + Constants.NEWLINE + " EVALUATE UT-TEST-SUITE-NAME " + Constants.NEWLINE + " ALSO UT-TEST-CASE-NAME " + Constants.NEWLINE + - " WHEN \"Mocking tests\" " + Constants.NEWLINE + - " ALSO \"Local mock overwrites global mock\" " + Constants.NEWLINE + + " WHEN \"Mocking tests\" " + Constants.NEWLINE + + " ALSO \"Local mock overwrites global mock\" " + Constants.NEWLINE + " PERFORM UT-1-1-1-MOCK " + Constants.NEWLINE + - " WHEN \"Mocking tests\" " + Constants.NEWLINE + - " ALSO \"Simply a test\" " + Constants.NEWLINE + - " PERFORM UT-1-2-1-MOCK " + Constants.NEWLINE + - " WHEN \"Mocking tests\" " + Constants.NEWLINE + - " ALSO ANY " + Constants.NEWLINE + - " PERFORM UT-1-0-1-MOCK " + Constants.NEWLINE + - " WHEN OTHER " + Constants.NEWLINE + + " WHEN \"Mocking tests\" " + Constants.NEWLINE + + " ALSO \"Simply a test\" " + Constants.NEWLINE + + " PERFORM UT-1-2-1-MOCK " + Constants.NEWLINE + + " WHEN \"Mocking tests\" " + Constants.NEWLINE + + " ALSO ANY " + Constants.NEWLINE + + " PERFORM UT-1-0-1-MOCK " + Constants.NEWLINE + + " WHEN OTHER " + Constants.NEWLINE + + " PERFORM 000-START-WHEN-OTHER " + Constants.NEWLINE + + " END-EVALUATE " + Constants.NEWLINE + + " . " + Constants.NEWLINE + + " " + Constants.NEWLINE + + " 000-START-WHEN-OTHER SECTION. " + Constants.NEWLINE + " MOVE \"Value1\" to VALUE-1 " + Constants.NEWLINE + - " EXIT SECTION " + Constants.NEWLINE + - " END-EVALUATE " + Constants.NEWLINE + - " . " + Constants.NEWLINE + + " EXIT SECTION. " + Constants.NEWLINE + + " . " + Constants.NEWLINE+ + " " + Constants.NEWLINE+ " 100-WELCOME SECTION. " + Constants.NEWLINE + - " " + Constants.NEWLINE + + " " + Constants.NEWLINE+ " EVALUATE UT-TEST-SUITE-NAME " + Constants.NEWLINE + " ALSO UT-TEST-CASE-NAME " + Constants.NEWLINE + " WHEN \"Mocking tests\" " + Constants.NEWLINE + - " ALSO \"Simply a test\" " + Constants.NEWLINE + + " ALSO \"Simply a test\" " + Constants.NEWLINE + " PERFORM UT-1-2-2-MOCK " + Constants.NEWLINE + " WHEN OTHER " + Constants.NEWLINE + - " MOVE \"Hello\" to VALUE-1 " + Constants.NEWLINE + - " END-EVALUATE " + Constants.NEWLINE + + " PERFORM 100-WELCOME-WHEN-OTHER " + Constants.NEWLINE + + " END-EVALUATE " + Constants.NEWLINE + + " . " + Constants.NEWLINE + + " " + Constants.NEWLINE+ + " 100-WELCOME-WHEN-OTHER SECTION. " + Constants.NEWLINE + + " MOVE \"Hello\" to VALUE-1. " + Constants.NEWLINE + " . " + Constants.NEWLINE + - " 200-GOODBYE SECTION . " + Constants.NEWLINE + + " " + Constants.NEWLINE+ + " 200-GOODBYE SECTION . " + Constants.NEWLINE + " EVALUATE UT-TEST-SUITE-NAME " + Constants.NEWLINE + " ALSO UT-TEST-CASE-NAME " + Constants.NEWLINE + " WHEN \"Mocking tests\" " + Constants.NEWLINE + - " ALSO \"Simply a test\" " + Constants.NEWLINE + + " ALSO \"Simply a test\" " + Constants.NEWLINE + " PERFORM UT-1-2-3-MOCK " + Constants.NEWLINE + " WHEN OTHER " + Constants.NEWLINE + - " MOVE \"Bye\" to VALUE-1 " + Constants.NEWLINE + - " END-EVALUATE " + Constants.NEWLINE + - " . " + Constants.NEWLINE; + " PERFORM 200-GOODBYE-WHEN-OTHER " + Constants.NEWLINE + + " END-EVALUATE " + Constants.NEWLINE + + " . " + Constants.NEWLINE + + " " + Constants.NEWLINE+ + " 200-GOODBYE-WHEN-OTHER SECTION. " + Constants.NEWLINE + + " MOVE \"Bye\" to VALUE-1 " + Constants.NEWLINE + + " . " + Constants.NEWLINE + + " " + Constants.NEWLINE; private String expected3 = " WORKING-STORAGE SECTION. " + Constants.NEWLINE + @@ -730,14 +754,19 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " 000-START SECTION. " + Constants.NEWLINE + " EVALUATE UT-TEST-SUITE-NAME " + Constants.NEWLINE + " ALSO UT-TEST-CASE-NAME " + Constants.NEWLINE + - " WHEN \"Mocking tests\" " + Constants.NEWLINE + - " ALSO \"Simply a test\" " + Constants.NEWLINE + + " WHEN \"Mocking tests\" " + Constants.NEWLINE + + " ALSO \"Simply a test\" " + Constants.NEWLINE + " PERFORM UT-1-2-1-MOCK " + Constants.NEWLINE + " WHEN OTHER " + Constants.NEWLINE + + " PERFORM 000-START-WHEN-OTHER " + Constants.NEWLINE + + " END-EVALUATE " + Constants.NEWLINE + + " . " + Constants.NEWLINE + + " " + Constants.NEWLINE + + " 000-START-WHEN-OTHER SECTION. " + Constants.NEWLINE + " MOVE \"Value1\" to VALUE-1 " + Constants.NEWLINE + - " EXIT SECTION " + Constants.NEWLINE + - " END-EVALUATE " + Constants.NEWLINE + - " . " + Constants.NEWLINE + + " EXIT SECTION. " + Constants.NEWLINE + + " . " + Constants.NEWLINE+ + " " + Constants.NEWLINE+ " 100-WELCOME SECTION. " + Constants.NEWLINE + " EVALUATE UT-TEST-SUITE-NAME " + Constants.NEWLINE + " ALSO UT-TEST-CASE-NAME " + Constants.NEWLINE + @@ -745,6 +774,11 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " ALSO ANY " + Constants.NEWLINE + " PERFORM UT-1-0-1-MOCK " + Constants.NEWLINE + " WHEN OTHER " + Constants.NEWLINE + + " PERFORM 100-WELCOME-WHEN-OTHER " + Constants.NEWLINE + + " END-EVALUATE " + Constants.NEWLINE + + " . " + Constants.NEWLINE + + " " + Constants.NEWLINE+ + " 100-WELCOME-WHEN-OTHER SECTION. " + Constants.NEWLINE + " * CALL 'prog1' USING BY CONTENT VALUE-1, VALUE-2. " + Constants.NEWLINE + " EVALUATE UT-TEST-SUITE-NAME " + Constants.NEWLINE + " ALSO UT-TEST-CASE-NAME " + Constants.NEWLINE + @@ -752,10 +786,10 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " ALSO \"Simply a test\" " + Constants.NEWLINE + " PERFORM UT-1-2-2-MOCK " + Constants.NEWLINE + " END-EVALUATE " + Constants.NEWLINE + - " CONTINUE " + Constants.NEWLINE + - " MOVE \"Hello\" to VALUE-1 " + Constants.NEWLINE + - " END-EVALUATE " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + + " MOVE \"Hello\" to VALUE-1. " + Constants.NEWLINE + " . " + Constants.NEWLINE + + " " + Constants.NEWLINE+ " 200-GOODBYE SECTION. " + Constants.NEWLINE + " EVALUATE UT-TEST-SUITE-NAME " + Constants.NEWLINE + " ALSO UT-TEST-CASE-NAME " + Constants.NEWLINE + @@ -766,9 +800,13 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " ALSO \"Simply a test\" " + Constants.NEWLINE + " PERFORM UT-1-2-3-MOCK " + Constants.NEWLINE + " WHEN OTHER " + Constants.NEWLINE + + " PERFORM 200-GOODBYE-WHEN-OTHER " + Constants.NEWLINE + + " END-EVALUATE " + Constants.NEWLINE + + " . " + Constants.NEWLINE + + " " + Constants.NEWLINE+ + " 200-GOODBYE-WHEN-OTHER SECTION. " + Constants.NEWLINE + " MOVE \"Bye\" to VALUE-1 " + Constants.NEWLINE + " * CALL bogus USING VALUE-1 " + Constants.NEWLINE + - " CONTINUE " + Constants.NEWLINE + " " + Constants.NEWLINE + " * CALL 'prog2' USING VALUE-1 " + Constants.NEWLINE + " EVALUATE UT-TEST-SUITE-NAME " + Constants.NEWLINE + @@ -777,7 +815,7 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " ALSO ANY " + Constants.NEWLINE + " PERFORM UT-1-0-2-MOCK " + Constants.NEWLINE + " END-EVALUATE " + Constants.NEWLINE + - " CONTINUE " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + " * CALL 'prog2' USING VALUE-1. " + Constants.NEWLINE + " EVALUATE UT-TEST-SUITE-NAME " + Constants.NEWLINE + " ALSO UT-TEST-CASE-NAME " + Constants.NEWLINE + @@ -785,9 +823,9 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " ALSO ANY " + Constants.NEWLINE + " PERFORM UT-1-0-2-MOCK " + Constants.NEWLINE + " END-EVALUATE " + Constants.NEWLINE + - " CONTINUE " + Constants.NEWLINE + - " END-EVALUATE " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + " . " + Constants.NEWLINE + + " " + Constants.NEWLINE + " * Ending with comment "; } From d28255211536064baced21628baaea113449e28e Mon Sep 17 00:00:00 2001 From: issacto Date: Sat, 15 Jul 2023 10:29:47 +0800 Subject: [PATCH 104/180] clean and update test case Signed-off-by: issacto --- src/main/cobol/TESTNESTED.CBL | 2 +- .../features/interpreter/InterpreterController.java | 2 -- src/test/cobol/TESTNESTED/TestNested.cut | 9 +++++---- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/src/main/cobol/TESTNESTED.CBL b/src/main/cobol/TESTNESTED.CBL index 1d2e1073..df0c8215 100644 --- a/src/main/cobol/TESTNESTED.CBL +++ b/src/main/cobol/TESTNESTED.CBL @@ -10,7 +10,7 @@ 05 ONE-DIGIT PIC X(80). PROCEDURE DIVISION. - MOCK-SECTION-WITH-ERROR SECTION. + MOCK-SECTION-WITH-ERROR SECTION . EVALUATE TRUE WHEN ONE-DIGIT = 1 MOVE 2 TO ONE-DIGIT diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java index e220c29e..848a0493 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java @@ -26,7 +26,6 @@ public class InterpreterController { private List possibleMockArgs; private boolean insideSectionOrParagraphMockBody; private TreeMap currentDataStructure; - private List sectionContent; private final String stubTag; public InterpreterController(BufferedReader sourceReader) { @@ -39,7 +38,6 @@ public InterpreterController(BufferedReader sourceReader) { numericFields = new NumericFields(); tokenExtractor = new StringTokenizerExtractor(); currentDataStructure = new TreeMap<>(); - sectionContent = new ArrayList <> (); stubTag = Config.getStubTag(); } diff --git a/src/test/cobol/TESTNESTED/TestNested.cut b/src/test/cobol/TESTNESTED/TestNested.cut index 87952a9f..f91e585a 100644 --- a/src/test/cobol/TESTNESTED/TestNested.cut +++ b/src/test/cobol/TESTNESTED/TestNested.cut @@ -1,9 +1,10 @@ - TestSuite "Test Mock" + TestSuite "Test Nested" - TestCase "Test Mock" + TestCase "Test Nested" MOVE 5 TO ONE-DIGIT - MOCK SECTION MOCK-SECTION-WITH-ERROR - MOVE 3 TO ONE-DIGIT + MOCK SECTION MOCK-SECTION-WITH-ERROR MOVE 3 TO ONE-DIGIT END-MOCK PERFORM MOCK-SECTION-WITH-ERROR EXPECT ONE-DIGIT TO BE 3 + + From 9b29f6fc117de88f8f55956677904921af7725cb Mon Sep 17 00:00:00 2001 From: issacto Date: Tue, 1 Aug 2023 10:04:05 +0100 Subject: [PATCH 105/180] refactor -1 Signed-off-by: issacto --- .../features/interpreter/CobolReader.java | 24 ------------- .../interpreter/InterpreterController.java | 21 ++++++----- .../cobolcheck/workers/Generator.java | 36 ++++++++++++------- 3 files changed, 36 insertions(+), 45 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/CobolReader.java b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/CobolReader.java index 8441770c..fee1ec4a 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/CobolReader.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/CobolReader.java @@ -21,8 +21,6 @@ public class CobolReader { private List nextLines; private List currentStatement; private int lineNumber; - private boolean isSection = false; - private List sectionLines; private String lineJustEneterd = null; @@ -32,7 +30,6 @@ public CobolReader(BufferedReader sourceReader) { tokenExtractor = new StringTokenizerExtractor(); nextLines = new ArrayList<>(); currentStatement = new ArrayList<>(); - sectionLines = new ArrayList<>(); } State getState() {return state; } @@ -287,25 +284,4 @@ boolean isFlagSet(String partOfProgram){ return state.getFlags().get(partOfProgram).isSet(); } - void setIsSection(boolean value){ - this.isSection=value; - } - - boolean getIsSection(){ - return this.isSection; - } - - void addWhenOtherSectionLines(String line){ - sectionLines.add(line); - } - - List getSectionLines(){ - return sectionLines; - } - - void removeSectionLines(){ - sectionLines.clear(); - } - - } diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java index 848a0493..7d046e51 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java @@ -27,6 +27,7 @@ public class InterpreterController { private boolean insideSectionOrParagraphMockBody; private TreeMap currentDataStructure; private final String stubTag; + private MockedSection mockedSection; public InterpreterController(BufferedReader sourceReader) { if (sourceReader == null) { @@ -39,6 +40,7 @@ public InterpreterController(BufferedReader sourceReader) { tokenExtractor = new StringTokenizerExtractor(); currentDataStructure = new TreeMap<>(); stubTag = Config.getStubTag(); + mockedSection = new MockedSection(); } //Getters for lists of specific source lines @@ -506,25 +508,26 @@ private void resetPossibleMockValues(){ } public List getSectionLines(){ - return reader.getSectionLines(); + return mockedSection.getSectionLines(); } public void removeSectionLines(){ - reader.removeSectionLines(); + mockedSection.removeSectionLines(); } - public void addWhenOtherSectionLine(){ - if(Interpreter.shouldLineBeStubbed(reader.getCurrentLine(), reader.getState())) reader.addWhenOtherSectionLines(StringHelper.stubLine(reader.getCurrentLine().getUnNumberedString(), stubTag)); - else reader.addWhenOtherSectionLines(reader.getCurrentLine().getUnNumberedString()); + public void addMockedSectionLine(){ + if(Interpreter.shouldLineBeStubbed(reader.getCurrentLine(), reader.getState())) + mockedSection.addSectionLine(StringHelper.stubLine(reader.getCurrentLine().getUnNumberedString(), stubTag)); + else mockedSection.addSectionLine(reader.getCurrentLine().getUnNumberedString()); } - public void addWhenOtherSectionLine(String line){ - reader.addWhenOtherSectionLines(line); + public void addMockedSectionLine(String line){ + mockedSection.addSectionLine(line); } - public void addWhenOtherSectionLines(List lines){ + public void addMockedSectionLines(List lines){ for (String line : lines){ - reader.addWhenOtherSectionLines(line); + mockedSection.addSectionLine(line); } } diff --git a/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java b/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java index 082ae87b..18846795 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java @@ -99,13 +99,7 @@ private void mergeTestSuite() { try { while ((sourceLine = interpreter.interpretNextLine()) != null) { processingBeforeEchoingSourceLineToOutput(); - if(interpreter.isInsideSectionOrParagraphMockBody()){ - interpreter.addWhenOtherSectionLine(); - } - sourceLine = tryInsertEndEvaluateAtMockedCompomentEnd(sourceLine); - if(!interpreter.isInsideSectionOrParagraphMockBody()){ - writeToSource(sourceLine); - } + echoingSourceLineToOutput(sourceLine); processingAfterEchoingSourceLineToOutput(); } testSuiteParserController.logUnusedMocks(); @@ -148,7 +142,7 @@ private String tryInsertEndEvaluateAtMockedCompomentEnd(String sourceLine) throw if (interpreter.isInsideSectionOrParagraphMockBody()){ if (interpreter.isCurrentLineEndingSectionOrParagraph()){ if (interpreter.canWriteEndEvaluateBeforeCurrentLine()){ - writeWhenOtherSection(sourceLine); + writeWhenOtherMockedSection(sourceLine); interpreter.removeSectionLines(); interpreter.setInsideSectionOrParagraphMockBody(false); return ""; @@ -211,9 +205,9 @@ private void processingAfterEchoingSourceLineToOutput() throws IOException { List arguments = interpreter.getPossibleMockArgs(); if (testSuiteParserController.mockExistsFor(identifier, type, arguments)){ if(interpreter.isInsideSectionOrParagraphMockBody()){ - interpreter.addWhenOtherSectionLines(testSuiteParserController.generateMockPerformCalls(identifier, type, arguments)); + interpreter.addMockedSectionLines(testSuiteParserController.generateMockPerformCalls(identifier, type, arguments)); if (type.equals(Constants.CALL_TOKEN)){ - interpreter.addWhenOtherSectionLine(" CONTINUE"); + interpreter.addMockedSectionLine(" CONTINUE"); } }else writerController.writeLines(testSuiteParserController.generateMockPerformCalls(identifier, type, arguments)); if (type.equals(Constants.SECTION_TOKEN) || type.equals(Constants.PARAGRAPH_TOKEN)){ @@ -231,13 +225,31 @@ private void closeReadersAndWriters(String programName) { writerController.closeWriter(programName); } - private void writeWhenOtherSection(String sourceLine) throws IOException{ + private void writeWhenOtherMockedSection(String sourceLine) throws IOException{ writerController.writeLine(String.format(" PERFORM %s-WHEN-OTHER", currentIdentifier)); writerController.writeLines(testSuiteParserController.getEndEvaluateLine()); writerController.writeLine(sourceLine); writerController.writeLine("");; - if(currentMockType.equals(Constants.SECTION_TOKEN)) writerController.writeLine(String.format(" %s-WHEN-OTHER SECTION.", currentIdentifier)); + if(currentMockType.equals(Constants.SECTION_TOKEN)) + writerController.writeLine(String.format(" %s-WHEN-OTHER SECTION.", currentIdentifier)); else writerController.writeLine(String.format(" %s-WHEN-OTHER.", currentIdentifier)); writerController.writeLines(interpreter.getSectionLines()); } + + private void echoingSourceLineToOutput(String sourceLine){ + try{ + if(interpreter.isInsideSectionOrParagraphMockBody()){ + interpreter.addMockedSectionLine(); + } + sourceLine = tryInsertEndEvaluateAtMockedCompomentEnd(sourceLine); + if(!interpreter.isInsideSectionOrParagraphMockBody()){ + writeToSource(sourceLine); + } + } catch (IOException ioEx) { + throw new CobolSourceCouldNotBeReadException(ioEx); + } + catch (Exception ex) { + throw new PossibleInternalLogicErrorException(ex); + } + } } From db948f51970b92f6980ddceca0b360b3b1e6c665 Mon Sep 17 00:00:00 2001 From: issacto Date: Tue, 1 Aug 2023 10:13:50 +0100 Subject: [PATCH 106/180] add mockedSection class Signed-off-by: issacto --- .../features/interpreter/MockedSection.java | 25 +++++++++++++++++++ 1 file changed, 25 insertions(+) create mode 100644 src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/MockedSection.java diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/MockedSection.java b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/MockedSection.java new file mode 100644 index 00000000..8b8e216c --- /dev/null +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/MockedSection.java @@ -0,0 +1,25 @@ +package org.openmainframeproject.cobolcheck.features.interpreter; + +import java.util.ArrayList; +import java.util.List; + +public class MockedSection { + + private List sectionLines; + + public MockedSection(){ + sectionLines = new ArrayList<>(); + } + + void addSectionLine(String line){ + sectionLines.add(line); + } + + List getSectionLines(){ + return sectionLines; + } + + void removeSectionLines(){ + sectionLines.clear(); + } +} From 4339ad701eb46e8005a871dfd689098711b5e7f8 Mon Sep 17 00:00:00 2001 From: issacto Date: Thu, 3 Aug 2023 14:49:21 +0100 Subject: [PATCH 107/180] change when other section naming Signed-off-by: issacto --- .../testSuiteParser/CobolGenerator.java | 18 ++++++++++- .../features/testSuiteParser/Mock.java | 4 +++ .../testSuiteParser/MockGenerator.java | 32 +++++++++++++++++++ .../testSuiteParser/TestSuiteParser.java | 11 +++++++ .../TestSuiteParserController.java | 15 +++++++++ .../cobolcheck/workers/Generator.java | 10 +++--- 6 files changed, 83 insertions(+), 7 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/CobolGenerator.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/CobolGenerator.java index 3d1eaeb7..09d4c349 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/CobolGenerator.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/CobolGenerator.java @@ -1,13 +1,15 @@ package org.openmainframeproject.cobolcheck.features.testSuiteParser; import org.openmainframeproject.cobolcheck.services.Config; +import org.openmainframeproject.cobolcheck.services.Constants; import org.openmainframeproject.cobolcheck.services.StringHelper; import java.util.ArrayList; import java.util.List; public class CobolGenerator { - private final static String SECTION_HEADER_FORMAT = " SECTION %s."; + private final static String SECTION_HEADER_FORMAT = " SECTION %s."; + private final static String WHEN_OTHER_SECTION_HEADER_FORMAT = " %s SECTION ."; private final static String PARAGRAPH_HEADER_FORMAT = " %s."; private final static String ENDING_PERIOD = " ."; @@ -72,4 +74,18 @@ static void addStartAndEndTags(List lines){ if (!getInjectEndTagComment().isEmpty()) lines.add(getInjectEndTagComment()); } + + static List generateWhenOtherMockLines(String identifier, String type, List commentLines, List bodyLines){ + List lines = new ArrayList<>(); + if(type.equals(Constants.SECTION_TOKEN)) + lines.add(String.format(WHEN_OTHER_SECTION_HEADER_FORMAT, identifier)); + else lines.add(String.format(PARAGRAPH_HEADER_FORMAT, identifier)); + if (commentLines != null) + lines.addAll(commentLines); + if (bodyLines != null) + lines.addAll(bodyLines); + lines.add(ENDING_PERIOD); + return lines; + } + } diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Mock.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Mock.java index 8f1a70db..cc669e65 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Mock.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Mock.java @@ -165,4 +165,8 @@ private String getArgumentText(){ } return combinedArgs.substring(0, combinedArgs.length() - 2); } + + public void addLinesWithoutMoving(List lines) { + this.lines.addAll(lines); + } } diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/MockGenerator.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/MockGenerator.java index 898b6003..895967eb 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/MockGenerator.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/MockGenerator.java @@ -156,4 +156,36 @@ private List generateParagraphsForMock(Mock mock, boolean withComment){ body.addAll(mock.getLines()); return CobolGenerator.generateParagraphLines(mock.getGeneratedMockIdentifier(), comments, body); } + + /**Generates the lines for Paragraphs based on mocks, + * for each mock in a given list. + * @param mocks - The mocks to generate Paragraphs for + * @return The generated lines + */ + List generateWhenOtherMock(Mock mock, boolean withComments){ + List lines = new ArrayList<>(); + lines.addAll(CobolGenerator.generateCommentBlock("Paragraphs called when mocking")); + lines.addAll(generateParagraphsForWhenOtherMock(mock, withComments)); + lines.add(""); + return lines; + } + + String generateWhenOtherMockPerformCall(Mock mock){ + return String.format(performFormat, mock.getGeneratedMockIdentifier()); + } + + private List generateParagraphsForWhenOtherMock(Mock mock, boolean withComment){ + List comments = new ArrayList<>(); + if (withComment){ + for (String line : mock.getCommentText()){ + comments.add(StringHelper.commentOutLine(line)); + } + } + List body = new ArrayList<>(); + body.addAll(mock.getLines()); + return CobolGenerator.generateWhenOtherMockLines(mock.getGeneratedMockIdentifier(),mock.getType(), comments, body); + } + + + } diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index 6b8ae6c9..000fe4ec 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -1159,4 +1159,15 @@ public String getCobolStatement() { public String getCurrentFieldName() { return currentFieldName; } + + public Mock getWhenOtherMock(String type, List lines, boolean withComments){ + mockNumber += 1; + Mock mock = new Mock(currentTestSuiteName ,currentTestCaseName, testSuiteNumber, testCaseNumber,mockNumber); + mock.addLinesWithoutMoving(lines); + mock.setScope(MockScope.Local); + mock.setType(type); + return mock; + + } + } diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParserController.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParserController.java index 8667db1b..8f7317d1 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParserController.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParserController.java @@ -313,4 +313,19 @@ public void closeTestSuiteReader(){ public void prepareNextParse() { Config.setDecimalPointIsCommaFromFile(); } + + public Mock getWhenOtherMock(String type, List lines, boolean withComments){ + // Local scope + return testSuiteParser.getWhenOtherMock(type,lines, withComments); + } + + public String generateWhenOtherMockPerformCall(Mock mock){ + return mockGenerator.generateWhenOtherMockPerformCall(mock); + } + + public List generateWhenOtherMock(Mock mock, boolean withComments){ + return mockGenerator.generateWhenOtherMock(mock, withComments); + } + + } diff --git a/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java b/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java index 18846795..aa608e10 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java @@ -11,6 +11,7 @@ import org.openmainframeproject.cobolcheck.exceptions.PossibleInternalLogicErrorException; import org.openmainframeproject.cobolcheck.features.interpreter.InterpreterController; import org.openmainframeproject.cobolcheck.features.prepareMerge.PrepareMergeController; +import org.openmainframeproject.cobolcheck.features.testSuiteParser.Mock; import org.openmainframeproject.cobolcheck.features.testSuiteParser.TestSuiteParserController; import org.openmainframeproject.cobolcheck.features.writer.WriterController; import org.openmainframeproject.cobolcheck.services.Constants; @@ -226,14 +227,11 @@ private void closeReadersAndWriters(String programName) { } private void writeWhenOtherMockedSection(String sourceLine) throws IOException{ - writerController.writeLine(String.format(" PERFORM %s-WHEN-OTHER", currentIdentifier)); + Mock mock = testSuiteParserController.getWhenOtherMock(currentMockType, interpreter.getSectionLines(), true); + writerController.writeLine(testSuiteParserController.generateWhenOtherMockPerformCall(mock)); writerController.writeLines(testSuiteParserController.getEndEvaluateLine()); writerController.writeLine(sourceLine); - writerController.writeLine("");; - if(currentMockType.equals(Constants.SECTION_TOKEN)) - writerController.writeLine(String.format(" %s-WHEN-OTHER SECTION.", currentIdentifier)); - else writerController.writeLine(String.format(" %s-WHEN-OTHER.", currentIdentifier)); - writerController.writeLines(interpreter.getSectionLines()); + writerController.writeLines(testSuiteParserController.generateWhenOtherMock(mock,true)); } private void echoingSourceLineToOutput(String sourceLine){ From 57d76bdea21a3d163278dfd816de8d696fa1b153 Mon Sep 17 00:00:00 2001 From: issacto Date: Thu, 3 Aug 2023 16:08:35 +0100 Subject: [PATCH 108/180] rename mocksection or pargraph Signed-off-by: issacto --- .../features/interpreter/InterpreterController.java | 4 ++-- .../{MockedSection.java => MockedSectionOrPargraph.java} | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) rename src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/{MockedSection.java => MockedSectionOrPargraph.java} (84%) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java index 7d046e51..adcca3c9 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java @@ -27,7 +27,7 @@ public class InterpreterController { private boolean insideSectionOrParagraphMockBody; private TreeMap currentDataStructure; private final String stubTag; - private MockedSection mockedSection; + private MockedSectionOrPargraph mockedSection; public InterpreterController(BufferedReader sourceReader) { if (sourceReader == null) { @@ -40,7 +40,7 @@ public InterpreterController(BufferedReader sourceReader) { tokenExtractor = new StringTokenizerExtractor(); currentDataStructure = new TreeMap<>(); stubTag = Config.getStubTag(); - mockedSection = new MockedSection(); + mockedSection = new MockedSectionOrPargraph(); } //Getters for lists of specific source lines diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/MockedSection.java b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/MockedSectionOrPargraph.java similarity index 84% rename from src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/MockedSection.java rename to src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/MockedSectionOrPargraph.java index 8b8e216c..c6d5cdc8 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/MockedSection.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/MockedSectionOrPargraph.java @@ -3,11 +3,11 @@ import java.util.ArrayList; import java.util.List; -public class MockedSection { +public class MockedSectionOrPargraph { private List sectionLines; - public MockedSection(){ + public MockedSectionOrPargraph(){ sectionLines = new ArrayList<>(); } From e0fac61c2b6a0adcea7ba43daf9dca145d51b2cd Mon Sep 17 00:00:00 2001 From: issacto Date: Sun, 6 Aug 2023 13:39:05 +0100 Subject: [PATCH 109/180] add missing identifier in when other Signed-off-by: issacto --- .../cobolcheck/features/testSuiteParser/TestSuiteParser.java | 3 ++- .../features/testSuiteParser/TestSuiteParserController.java | 4 ++-- .../openmainframeproject/cobolcheck/workers/Generator.java | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index 000fe4ec..69502c34 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -1160,12 +1160,13 @@ public String getCurrentFieldName() { return currentFieldName; } - public Mock getWhenOtherMock(String type, List lines, boolean withComments){ + public Mock getWhenOtherMock(String type, List lines, String itdentifier, boolean withComments){ mockNumber += 1; Mock mock = new Mock(currentTestSuiteName ,currentTestCaseName, testSuiteNumber, testCaseNumber,mockNumber); mock.addLinesWithoutMoving(lines); mock.setScope(MockScope.Local); mock.setType(type); + mock.setIdentifier(itdentifier); return mock; } diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParserController.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParserController.java index 8f7317d1..c10a6a97 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParserController.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParserController.java @@ -314,9 +314,9 @@ public void prepareNextParse() { Config.setDecimalPointIsCommaFromFile(); } - public Mock getWhenOtherMock(String type, List lines, boolean withComments){ + public Mock getWhenOtherMock(String type, List lines, String identifier, boolean withComments){ // Local scope - return testSuiteParser.getWhenOtherMock(type,lines, withComments); + return testSuiteParser.getWhenOtherMock(type,lines, identifier, withComments); } public String generateWhenOtherMockPerformCall(Mock mock){ diff --git a/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java b/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java index aa608e10..d12e69aa 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java @@ -227,7 +227,7 @@ private void closeReadersAndWriters(String programName) { } private void writeWhenOtherMockedSection(String sourceLine) throws IOException{ - Mock mock = testSuiteParserController.getWhenOtherMock(currentMockType, interpreter.getSectionLines(), true); + Mock mock = testSuiteParserController.getWhenOtherMock(currentMockType, interpreter.getSectionLines(), currentIdentifier, true); writerController.writeLine(testSuiteParserController.generateWhenOtherMockPerformCall(mock)); writerController.writeLines(testSuiteParserController.getEndEvaluateLine()); writerController.writeLine(sourceLine); From 25c0fc0ab81b474f2f16d0d9350a60edfe481606 Mon Sep 17 00:00:00 2001 From: issacto Date: Mon, 7 Aug 2023 10:37:35 +0100 Subject: [PATCH 110/180] change expected test result Signed-off-by: issacto --- .../testSuiteParser/CobolGenerator.java | 2 +- .../cobolcheck/workers/Generator.java | 1 + .../cobolcheck/MockIT.java | 104 +++++++++++++++--- 3 files changed, 88 insertions(+), 19 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/CobolGenerator.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/CobolGenerator.java index 09d4c349..d12be6c8 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/CobolGenerator.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/CobolGenerator.java @@ -9,7 +9,7 @@ public class CobolGenerator { private final static String SECTION_HEADER_FORMAT = " SECTION %s."; - private final static String WHEN_OTHER_SECTION_HEADER_FORMAT = " %s SECTION ."; + private final static String WHEN_OTHER_SECTION_HEADER_FORMAT = " %s SECTION."; private final static String PARAGRAPH_HEADER_FORMAT = " %s."; private final static String ENDING_PERIOD = " ."; diff --git a/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java b/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java index d12e69aa..a8b382e1 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java @@ -231,6 +231,7 @@ private void writeWhenOtherMockedSection(String sourceLine) throws IOException{ writerController.writeLine(testSuiteParserController.generateWhenOtherMockPerformCall(mock)); writerController.writeLines(testSuiteParserController.getEndEvaluateLine()); writerController.writeLine(sourceLine); + writerController.writeLine(""); writerController.writeLines(testSuiteParserController.generateWhenOtherMock(mock,true)); } diff --git a/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java b/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java index cf1fcef0..fcbe47ae 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java @@ -81,7 +81,6 @@ public void it_inserts_a_mock_correctly() throws IOException { generator = new Generator(interpreterController, writerController, testSuiteParserController); List actual = getTrimmedList(removeBoilerPlateCode(writer.toString(), boilerPlateTags)); - assertEquals(getTrimmedList(expected1), actual); } @@ -126,7 +125,6 @@ public void it_inserts_mocks_correctly_with_source_code_changing_code_style() th generator = new Generator(interpreterController, writerController, testSuiteParserController); List actual = getTrimmedList(removeBoilerPlateCode(writer.toString(), boilerPlateTags)); - assertEquals(getTrimmedList(expected2), actual); } @@ -357,15 +355,25 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " ALSO ANY " + Constants.NEWLINE + " PERFORM UT-1-0-1-MOCK " + Constants.NEWLINE + " WHEN OTHER " + Constants.NEWLINE + - " PERFORM 000-START-WHEN-OTHER " + Constants.NEWLINE + + " PERFORM UT-1-0-2-MOCK " + Constants.NEWLINE + " END-EVALUATE " + Constants.NEWLINE + " . " + Constants.NEWLINE + - " " + Constants.NEWLINE + - " 000-START-WHEN-OTHER SECTION. " + Constants.NEWLINE + + " " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " *Paragraphs called when mocking " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " UT-1-0-2-MOCK SECTION. " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " *Local mock of: SECTION: 000-START " + Constants.NEWLINE + + " *In testsuite: \"Mocking tests\" " + Constants.NEWLINE + + " *In testcase: " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + " MOVE \"Value1\" to VALUE-1 " + Constants.NEWLINE + " EXIT SECTION " + Constants.NEWLINE + " . " + Constants.NEWLINE+ - " "; + " . " + Constants.NEWLINE+ + " " + Constants.NEWLINE+ + " "+ Constants.NEWLINE; private String expected2 = " WORKING-STORAGE SECTION. " + Constants.NEWLINE + @@ -510,14 +518,24 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " ALSO ANY " + Constants.NEWLINE + " PERFORM UT-1-0-1-MOCK " + Constants.NEWLINE + " WHEN OTHER " + Constants.NEWLINE + - " PERFORM 000-START-WHEN-OTHER " + Constants.NEWLINE + + " PERFORM UT-1-2-4-MOCK " + Constants.NEWLINE + " END-EVALUATE " + Constants.NEWLINE + " . " + Constants.NEWLINE + " " + Constants.NEWLINE + - " 000-START-WHEN-OTHER SECTION. " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " *Paragraphs called when mocking " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " UT-1-2-4-MOCK SECTION. " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " *Local mock of: SECTION: 000-START " + Constants.NEWLINE + + " *In testsuite: \"Mocking tests\" " + Constants.NEWLINE + + " *In testcase: \"Simply a test\" " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + " MOVE \"Value1\" to VALUE-1 " + Constants.NEWLINE + " EXIT SECTION. " + Constants.NEWLINE + " . " + Constants.NEWLINE+ + " . " + Constants.NEWLINE+ + " " + Constants.NEWLINE+ " " + Constants.NEWLINE+ " 100-WELCOME SECTION. " + Constants.NEWLINE + " " + Constants.NEWLINE+ @@ -527,13 +545,23 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " ALSO \"Simply a test\" " + Constants.NEWLINE + " PERFORM UT-1-2-2-MOCK " + Constants.NEWLINE + " WHEN OTHER " + Constants.NEWLINE + - " PERFORM 100-WELCOME-WHEN-OTHER " + Constants.NEWLINE + + " PERFORM UT-1-2-5-MOCK " + Constants.NEWLINE + " END-EVALUATE " + Constants.NEWLINE + " . " + Constants.NEWLINE + " " + Constants.NEWLINE+ - " 100-WELCOME-WHEN-OTHER SECTION. " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " *Paragraphs called when mocking " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " UT-1-2-5-MOCK SECTION. " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " *Local mock of: SECTION: 100-WELCOME " + Constants.NEWLINE + + " *In testsuite: \"Mocking tests\" " + Constants.NEWLINE + + " *In testcase: \"Simply a test\" " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + " MOVE \"Hello\" to VALUE-1. " + Constants.NEWLINE + " . " + Constants.NEWLINE + + " . " + Constants.NEWLINE + + " " + Constants.NEWLINE+ " " + Constants.NEWLINE+ " 200-GOODBYE SECTION . " + Constants.NEWLINE + " EVALUATE UT-TEST-SUITE-NAME " + Constants.NEWLINE + @@ -542,13 +570,23 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " ALSO \"Simply a test\" " + Constants.NEWLINE + " PERFORM UT-1-2-3-MOCK " + Constants.NEWLINE + " WHEN OTHER " + Constants.NEWLINE + - " PERFORM 200-GOODBYE-WHEN-OTHER " + Constants.NEWLINE + + " PERFORM UT-1-2-6-MOCK " + Constants.NEWLINE + " END-EVALUATE " + Constants.NEWLINE + " . " + Constants.NEWLINE + " " + Constants.NEWLINE+ - " 200-GOODBYE-WHEN-OTHER SECTION. " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " *Paragraphs called when mocking " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " UT-1-2-6-MOCK SECTION. " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " *Local mock of: SECTION: 200-GOODBYE " + Constants.NEWLINE + + " *In testsuite: \"Mocking tests\" " + Constants.NEWLINE + + " *In testcase: \"Simply a test\" " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + " MOVE \"Bye\" to VALUE-1 " + Constants.NEWLINE + " . " + Constants.NEWLINE + + " . " + Constants.NEWLINE + + " " + Constants.NEWLINE+ " " + Constants.NEWLINE; private String expected3 = @@ -758,14 +796,24 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " ALSO \"Simply a test\" " + Constants.NEWLINE + " PERFORM UT-1-2-1-MOCK " + Constants.NEWLINE + " WHEN OTHER " + Constants.NEWLINE + - " PERFORM 000-START-WHEN-OTHER " + Constants.NEWLINE + + " PERFORM UT-1-2-4-MOCK " + Constants.NEWLINE + " END-EVALUATE " + Constants.NEWLINE + " . " + Constants.NEWLINE + " " + Constants.NEWLINE + - " 000-START-WHEN-OTHER SECTION. " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " *Paragraphs called when mocking " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " UT-1-2-4-MOCK SECTION. " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " *Local mock of: SECTION: 000-START " + Constants.NEWLINE + + " *In testsuite: \"Mocking tests\" " + Constants.NEWLINE + + " *In testcase: \"Simply a test\" " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + " MOVE \"Value1\" to VALUE-1 " + Constants.NEWLINE + " EXIT SECTION. " + Constants.NEWLINE + " . " + Constants.NEWLINE+ + " . " + Constants.NEWLINE + + " " + Constants.NEWLINE+ " " + Constants.NEWLINE+ " 100-WELCOME SECTION. " + Constants.NEWLINE + " EVALUATE UT-TEST-SUITE-NAME " + Constants.NEWLINE + @@ -774,11 +822,19 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " ALSO ANY " + Constants.NEWLINE + " PERFORM UT-1-0-1-MOCK " + Constants.NEWLINE + " WHEN OTHER " + Constants.NEWLINE + - " PERFORM 100-WELCOME-WHEN-OTHER " + Constants.NEWLINE + + " PERFORM UT-1-2-5-MOCK " + Constants.NEWLINE + " END-EVALUATE " + Constants.NEWLINE + " . " + Constants.NEWLINE + " " + Constants.NEWLINE+ - " 100-WELCOME-WHEN-OTHER SECTION. " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " *Paragraphs called when mocking " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " UT-1-2-5-MOCK SECTION. " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " *Local mock of: SECTION: 100-WELCOME " + Constants.NEWLINE + + " *In testsuite: \"Mocking tests\" " + Constants.NEWLINE + + " *In testcase: \"Simply a test\" " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + " * CALL 'prog1' USING BY CONTENT VALUE-1, VALUE-2. " + Constants.NEWLINE + " EVALUATE UT-TEST-SUITE-NAME " + Constants.NEWLINE + " ALSO UT-TEST-CASE-NAME " + Constants.NEWLINE + @@ -789,6 +845,8 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " CONTINUE " + Constants.NEWLINE + " MOVE \"Hello\" to VALUE-1. " + Constants.NEWLINE + " . " + Constants.NEWLINE + + " . " + Constants.NEWLINE + + " " + Constants.NEWLINE+ " " + Constants.NEWLINE+ " 200-GOODBYE SECTION. " + Constants.NEWLINE + " EVALUATE UT-TEST-SUITE-NAME " + Constants.NEWLINE + @@ -800,11 +858,19 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " ALSO \"Simply a test\" " + Constants.NEWLINE + " PERFORM UT-1-2-3-MOCK " + Constants.NEWLINE + " WHEN OTHER " + Constants.NEWLINE + - " PERFORM 200-GOODBYE-WHEN-OTHER " + Constants.NEWLINE + + " PERFORM UT-1-2-6-MOCK " + Constants.NEWLINE + " END-EVALUATE " + Constants.NEWLINE + " . " + Constants.NEWLINE + " " + Constants.NEWLINE+ - " 200-GOODBYE-WHEN-OTHER SECTION. " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " *Paragraphs called when mocking " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " UT-1-2-6-MOCK SECTION. " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " *Local mock of: SECTION: 200-GOODBYE " + Constants.NEWLINE + + " *In testsuite: \"Mocking tests\" " + Constants.NEWLINE + + " *In testcase: \"Simply a test\" " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + " MOVE \"Bye\" to VALUE-1 " + Constants.NEWLINE + " * CALL bogus USING VALUE-1 " + Constants.NEWLINE + " " + Constants.NEWLINE + @@ -825,6 +891,8 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " END-EVALUATE " + Constants.NEWLINE + " CONTINUE " + Constants.NEWLINE + " . " + Constants.NEWLINE + + " . " + Constants.NEWLINE + + " " + Constants.NEWLINE + " " + Constants.NEWLINE + " * Ending with comment "; From 9709307722416f8123f2a8804934c396a1aade8f Mon Sep 17 00:00:00 2001 From: Rune Christensen Date: Tue, 8 Aug 2023 15:06:09 +0200 Subject: [PATCH 111/180] change to inline expansion. Remove commenting out of linkage, replaced with new issue Fix SQLCA.cpy to not use binary-long binary-short Signed-off-by: Rune Christensen --- config.properties | 2 +- gradle/wrapper/gradle-wrapper.properties | 2 +- src/main/cobol/DB2PROG.cbl | 11 +- src/main/cobol/copy/SQLCA.cpy | 8 +- .../interpreter/InterpreterController.java | 2 +- .../cobolcheck/services/Config.java | 4 +- .../services/cobolLogic/Interpreter.java | 3 - .../cobolcheck/workers/Generator.java | 7 +- .../cobolcheck/ConfigIT.java | 4 +- .../cobolcheck/ExpanderTest.java | 145 ++++++++++++++++++ .../cobolcheck/InterpreterControllerTest.java | 2 +- .../cobolcheck/MockIT.java | 57 ++----- .../cobolcheck/TestSuiteConcatenatorIT.java | 2 - .../cobolcheck/testhelpers/MD5.java | 39 ----- .../cobolcheck/testhelpers/SystemErr.java | 20 --- .../cobolcheck/testhelpers/Utilities.java | 50 ++++++ testconfig.properties | 2 +- 17 files changed, 226 insertions(+), 134 deletions(-) create mode 100644 src/test/java/org/openmainframeproject/cobolcheck/ExpanderTest.java delete mode 100644 src/test/java/org/openmainframeproject/cobolcheck/testhelpers/MD5.java delete mode 100644 src/test/java/org/openmainframeproject/cobolcheck/testhelpers/SystemErr.java create mode 100644 src/test/java/org/openmainframeproject/cobolcheck/testhelpers/Utilities.java diff --git a/config.properties b/config.properties index a16a9950..82f4bedf 100644 --- a/config.properties +++ b/config.properties @@ -147,7 +147,7 @@ application.source.filename.suffix = CBL,cbl,COB,cob # If application copybook filenames have a suffix, specify it here without the period or dot # e.g. application.copybook.filename.suffix = CBL #--------------------------------------------------------------------------------------------------------------------- -application.copybook.filename.suffix = CBL,cbl,COB,cob,cpy +application.copybook.filename.suffix = CBL,cbl,COB,cob,CPY,cpy #--------------------------------------------------------------------------------------------------------------------- # Optional override of system default Locale for log messages and exception messages. diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 1f3fdbc5..c51cbf17 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-6.7.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-6.9.4-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/src/main/cobol/DB2PROG.cbl b/src/main/cobol/DB2PROG.cbl index c6c80079..68ffb6b3 100644 --- a/src/main/cobol/DB2PROG.cbl +++ b/src/main/cobol/DB2PROG.cbl @@ -9,16 +9,15 @@ DATA DIVISION. WORKING-STORAGE SECTION. + EXEC SQL INCLUDE SQLCA END-EXEC. + EXEC SQL INCLUDE TEXEM END-EXEC. + 01 FILLER. 05 WS-FIELD-1 PIC X(80). 05 ws-Field-2 PIC X(80). - - - EXEC SQL INCLUDE SQLCA END-EXEC. - EXEC SQL INCLUDE TEXEM END-EXEC. - EXEC SQL - DECLARE NAME-CUR CURSOR FOR + EXEC SQL + DECLARE NAME-CUR CURSOR FOR SELECT FIRST_NAME, LAST_NAME FROM TEXEM END-EXEC. diff --git a/src/main/cobol/copy/SQLCA.cpy b/src/main/cobol/copy/SQLCA.cpy index 00bed49e..277c2dfc 100644 --- a/src/main/cobol/copy/SQLCA.cpy +++ b/src/main/cobol/copy/SQLCA.cpy @@ -1,12 +1,12 @@ 01 SQLCA. 03 SQLCAID PIC X(8) VALUE "SQLCA ". - 03 SQLCABC USAGE BINARY-LONG VALUE 136. - 03 SQLCODE USAGE BINARY-LONG VALUE 0. + 03 SQLCABC PIC S9(9) USAGE BINARY VALUE 136. + 03 SQLCODE PIC S9(9) USAGE BINARY VALUE 0. 03 SQLERRM. - 05 SQLERRML USAGE BINARY-SHORT. + 05 SQLERRML PIC S9(4) USAGE BINARY. 05 SQLERRMC PIC X(70). 03 SQLERRP PIC X(8). - 03 SQLERRD USAGE BINARY-LONG OCCURS 6. + 03 SQLERRD PIC S9(9) USAGE BINARY OCCURS 6. 03 SQLWARN. 05 SQLWARN0 PIC X. 05 SQLWARN1 PIC X. diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java index 354a08b4..6928ff04 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java @@ -141,7 +141,7 @@ public boolean shouldCurrentLineBeStubbed() throws IOException { return true; } } - if (reader.getState().isFlagSetFor(Constants.WORKING_STORAGE_SECTION)||reader.getState().isFlagSetFor(Constants.LINKAGE_SECTION)) { + if (reader.getState().isFlagSetFor(Constants.WORKING_STORAGE_SECTION)) { return Interpreter.shouldLineBeStubbed(reader.getCurrentLine(), reader.getState()); } return false; diff --git a/src/main/java/org/openmainframeproject/cobolcheck/services/Config.java b/src/main/java/org/openmainframeproject/cobolcheck/services/Config.java index d32829ea..2f4d6fc5 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/services/Config.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/services/Config.java @@ -43,7 +43,7 @@ public class Config { public static final String LOCALE_VARIANT_CONFIG_KEY = "locale.variant"; public static final String DEFAULT_LOCALE_CONFIG_KEY = "default.locale"; public static final String RUN_GENERATED_TESTS_CONFIG_KEY = "cobolcheck.test.run"; - public static final String RUN_GENERATED_TESTS_DEAFAULT = "true"; + public static final String RUN_GENERATED_TESTS_DEFAULT = "true"; public static final String RESOLVED_APPLICATION_SOURCE_FILENAME_SUFFIX = "resolved.application.source.filename.suffix"; public static final String APPLICATION_SOURCE_FILENAME_SUFFIX = "application.source.filename.suffix"; public static final String RESOLVED_APPLICATION_COPYBOOK_FILENAME_SUFFIX = "resolved.application.copybook.filename.suffix"; @@ -278,7 +278,7 @@ public static DataTransferObjectStyle getTestResultFormatStyle() { } public static boolean getRunGeneratedTest() { - String value = settings.getProperty(RUN_GENERATED_TESTS_CONFIG_KEY, RUN_GENERATED_TESTS_DEAFAULT); + String value = settings.getProperty(RUN_GENERATED_TESTS_CONFIG_KEY, RUN_GENERATED_TESTS_DEFAULT); return Boolean.parseBoolean(value.trim()); } private static String sourceFolderContext = null; diff --git a/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java b/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java index fdb8ed3d..69f84b8f 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java @@ -254,9 +254,6 @@ public static boolean shouldLineBeStubbed(CobolLine line, State state) { if (line.containsToken(Constants.EXEC_SQL_TOKEN) || line.containsToken(Constants.INCLUDE) || line.containsToken(Constants.END_EXEC_TOKEN)) return true; } - if (line.containsToken(Constants.LINKAGE_SECTION)) { - return true; - } return false; } diff --git a/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java b/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java index f4036548..bd0b909e 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java @@ -126,8 +126,6 @@ private void processingBeforeEchoingSourceLineToOutput() throws IOException { workingStorageHasEnded = true; } if (interpreter.didLineJustEnter(Constants.PROCEDURE_DIVISION) && interpreter.currentLineContains(Constants.PROCEDURE_DIVISION)){ - if (!interpreter.getFileSectionStatements().isEmpty()) - writerController.writeLines(interpreter.getFileSectionStatements()); writerController.stopStoringLines(); testSuiteParserController.parseTestSuites(interpreter.getNumericFields()); writerController.writeLines(testSuiteParserController.getWorkingStorageMockCode()); @@ -168,8 +166,11 @@ private void writeToSource(String sourceLine) throws IOException { } else { if (interpreter.shouldCurrentLineBeStubbed()) { - if(interpreter.isReading(Constants.WORKING_STORAGE_SECTION)) + if(interpreter.isReading(Constants.WORKING_STORAGE_SECTION)) { writerController.writeStubbedLine(interpreter.getCurrentLineAsStatement().getUnNumberedString()); + if (!interpreter.getFileSectionStatements().isEmpty()) + writerController.writeLines(interpreter.getFileSectionStatements()); + } else writerController.writeStubbedLine(sourceLine); } diff --git a/src/test/java/org/openmainframeproject/cobolcheck/ConfigIT.java b/src/test/java/org/openmainframeproject/cobolcheck/ConfigIT.java index 15a37dcb..6fa5fb43 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/ConfigIT.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/ConfigIT.java @@ -63,7 +63,7 @@ public void it_can_find_the_copybooks_for_cobolcheck_based_on_config_settings() private Path findFileNamed(String filename) { String resourcesDirectory = Config.getString("resources.directory"); - String packagePathSegment = "com/neopragma/cobolcheck"; + String packagePathSegment = "org/openmainframeproject/cobolcheck"; String copybookPathSegment = Config.getString("cobolcheck.copybook.directory"); return new File( resourcesDirectory + Constants.FILE_SEPARATOR @@ -102,7 +102,7 @@ public void it_returns_empty_string_when_application_copybook_filenames_have_no_ @Test public void it_returns_list_of_specified_application_copybook_filename_suffixes() { Config.load("testconfig.properties"); - List expected = new ArrayList(Arrays.asList( ".CBL", ".cbl", ".COB", ".cob" )); + List expected = new ArrayList(Arrays.asList( ".CBL", ".cbl", ".COB", ".cob", ".CPY", ".cpy" )); assertEquals(expected, Config.getCopybookFilenameSuffixes()); } } diff --git a/src/test/java/org/openmainframeproject/cobolcheck/ExpanderTest.java b/src/test/java/org/openmainframeproject/cobolcheck/ExpanderTest.java new file mode 100644 index 00000000..97b58e07 --- /dev/null +++ b/src/test/java/org/openmainframeproject/cobolcheck/ExpanderTest.java @@ -0,0 +1,145 @@ +package org.openmainframeproject.cobolcheck; + +import org.junit.jupiter.api.BeforeAll; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; +import org.mockito.Mockito; +import org.openmainframeproject.cobolcheck.features.interpreter.InterpreterController; +import org.openmainframeproject.cobolcheck.features.testSuiteParser.TestSuiteParserController; +import org.openmainframeproject.cobolcheck.features.writer.CobolWriter; +import org.openmainframeproject.cobolcheck.features.writer.WriterController; +import org.openmainframeproject.cobolcheck.services.Config; +import org.openmainframeproject.cobolcheck.services.Constants; +import org.openmainframeproject.cobolcheck.services.cobolLogic.Interpreter; +import org.openmainframeproject.cobolcheck.testhelpers.Utilities; +import org.openmainframeproject.cobolcheck.workers.Generator; + +import java.io.BufferedReader; +import java.io.IOException; +import java.io.StringWriter; +import java.io.Writer; +import java.util.Arrays; +import java.util.List; + +import static org.junit.jupiter.api.Assertions.assertEquals; + +public class ExpanderTest { + + private Generator generator; + private TestSuiteParserController testSuiteParserController; + private BufferedReader mockedParserReader; + private InterpreterController interpreterController; + private BufferedReader mockedInterpreterReader; + private Interpreter interpreter; + private CobolWriter cobolWriter; + private WriterController writerController; + private Writer writer; + + private List boilerPLateWS; + private List boilerPLateDP; + List boilerPlateTags = Arrays.asList("* CCHECKWS.CPY", "* CCHECKPARAGRAPHSPD.CPY", "* CCHECKRESULTPD.CPY"); + + @BeforeAll + static void oneTimeSetup() { + Config.load("testconfig.properties"); + } + + @BeforeEach + void commonSetup() throws IOException { + mockedInterpreterReader = Mockito.mock(BufferedReader.class); + interpreterController = new InterpreterController(mockedInterpreterReader); + + writer = new StringWriter(); + cobolWriter = new CobolWriter(writer); + writerController = new WriterController(cobolWriter); + + mockedParserReader = Mockito.mock(BufferedReader.class); + testSuiteParserController = new TestSuiteParserController(mockedParserReader); + + if (boilerPLateWS == null){ + boilerPLateWS = testSuiteParserController.getBoilerplateCodeFromCopybooks("CCHECKWS.CPY"); + boilerPLateDP = testSuiteParserController.getBoilerplateCodeFromCopybooks("CCHECKPARAGRAPHSPD.CPY"); + } + } + + @Test + public void it_inserts_a_mock_correctly() throws IOException { + String s1 = " WORKING-STORAGE SECTION."; + String s2 = " EXEC SQL INCLUDE TEXEM END-EXEC."; + String s3 = " 01 FILLER."; + String s4 = " 05 WS-FIELD-1 PIC X(80)."; + String s5 = " 05 ws-Field-2 PIC X(80)."; + String s6 = " PROCEDURE DIVISION."; + String s7 = " 000-START SECTION."; + String s8 = " MOVE \"Value1\" to WS-FIELD-1"; + String s9 = " EXIT SECTION"; + String s10 = " ."; + + String t1 = " TestSuite \"Basic test\""; + String t2 = " PERFORM 000-START"; + String t3 = " EXPECT WS-FIELD-1 TO BE \"Value1\""; + + Mockito.when(mockedInterpreterReader.readLine()).thenReturn(s1, s2, s3, s4, s5, s6, s7, s8, s9, s10, null); + Mockito.when(mockedParserReader.readLine()).thenReturn(t1, t2, t3, null); + + generator = new Generator(interpreterController, writerController, testSuiteParserController); + + List actual = Utilities.getTrimmedList(Utilities.removeBoilerPlateCode(writer.toString(), boilerPlateTags)); + + assertEquals(Utilities.getTrimmedList(expected1), actual); + } + + private String expected1 = + " WORKING-STORAGE SECTION. " + Constants.NEWLINE + + " *EXEC SQL INCLUDE TEXEM END-EXEC. " + Constants.NEWLINE + + " 01 TEXEM. " + Constants.NEWLINE + + " 10 FIRST-NAME PIC X(10). " + Constants.NEWLINE + + " 10 LAST-NAME PIC X(10). " + Constants.NEWLINE + + " 10 TMS-CREA PIC X(26). " + Constants.NEWLINE + + " 01 FILLER. " + Constants.NEWLINE + + " 05 WS-FIELD-1 PIC X(80). " + Constants.NEWLINE + + " 05 ws-Field-2 PIC X(80). " + Constants.NEWLINE + + " PROCEDURE DIVISION. " + Constants.NEWLINE + + " PERFORM UT-INITIALIZE " + Constants.NEWLINE + + " *============= \"Basic test\" =============* " + Constants.NEWLINE + + " DISPLAY \"TESTSUITE:\" " + Constants.NEWLINE + + " DISPLAY \"Basic test\" " + Constants.NEWLINE + + " MOVE \"Basic test\" " + Constants.NEWLINE + + " TO UT-TEST-SUITE-NAME " + Constants.NEWLINE + + " PERFORM 000-START " + Constants.NEWLINE + + " ADD 1 TO UT-TEST-CASE-COUNT " + Constants.NEWLINE + + " SET UT-NORMAL-COMPARE TO TRUE " + Constants.NEWLINE + + " SET UT-ALPHANUMERIC-COMPARE TO TRUE " + Constants.NEWLINE + + " MOVE WS-FIELD-1 TO UT-ACTUAL " + Constants.NEWLINE + + " MOVE \"Value1\" " + Constants.NEWLINE + + " TO UT-EXPECTED " + Constants.NEWLINE + + " SET UT-RELATION-EQ TO TRUE " + Constants.NEWLINE + + " PERFORM UT-CHECK-EXPECTATION " + Constants.NEWLINE + + " UT-BEFORE-EACH. " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " *This is performed before each Test Case " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + + " . " + Constants.NEWLINE + + " " + Constants.NEWLINE + + " UT-AFTER-EACH. " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " *This is performed after each Test Case " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + + " . " + Constants.NEWLINE + + " " + Constants.NEWLINE + + " UT-INITIALIZE-MOCK-COUNT. " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " *Sets all global mock counters and expected count to 0 " + Constants.NEWLINE + + " ***************************************************************** " + Constants.NEWLINE + + " CONTINUE " + Constants.NEWLINE + + " . " + Constants.NEWLINE + + " " + Constants.NEWLINE + + " 000-START SECTION. " + Constants.NEWLINE + + " MOVE \"Value1\" to WS-FIELD-1 " + Constants.NEWLINE + + " EXIT SECTION " + Constants.NEWLINE + + " . " + Constants.NEWLINE; +} + + diff --git a/src/test/java/org/openmainframeproject/cobolcheck/InterpreterControllerTest.java b/src/test/java/org/openmainframeproject/cobolcheck/InterpreterControllerTest.java index 92d12e5d..0c29559a 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/InterpreterControllerTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/InterpreterControllerTest.java @@ -977,7 +977,7 @@ public void it_stubs_linkage_line() throws IOException { while (currentLine != null){ currentLine = interpreterController.interpretNextLine(); if (currentLine != null && currentLine.contains("LINKAGE SECTION.")) { - assertTrue(interpreterController.shouldCurrentLineBeStubbed()); + assertFalse(interpreterController.shouldCurrentLineBeStubbed()); testsRan = true; } } diff --git a/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java b/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java index 2a4526c1..9d998237 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java @@ -9,6 +9,7 @@ import org.openmainframeproject.cobolcheck.services.StringHelper; import org.openmainframeproject.cobolcheck.services.cobolLogic.Interpreter; import org.openmainframeproject.cobolcheck.workers.Generator; +import org.openmainframeproject.cobolcheck.testhelpers.Utilities; import org.junit.jupiter.api.BeforeAll; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; @@ -82,9 +83,9 @@ public void it_inserts_a_mock_correctly() throws IOException { generator = new Generator(interpreterController, writerController, testSuiteParserController); - List actual = getTrimmedList(removeBoilerPlateCode(writer.toString(), boilerPlateTags)); + List actual = Utilities.getTrimmedList(Utilities.removeBoilerPlateCode(writer.toString(), boilerPlateTags)); - assertEquals(getTrimmedList(expected1), actual); + assertEquals(Utilities.getTrimmedList(expected1), actual); } @Test @@ -127,9 +128,9 @@ public void it_inserts_mocks_correctly_with_source_code_changing_code_style() th generator = new Generator(interpreterController, writerController, testSuiteParserController); - List actual = getTrimmedList(removeBoilerPlateCode(writer.toString(), boilerPlateTags)); + List actual = Utilities.getTrimmedList(Utilities.removeBoilerPlateCode(writer.toString(), boilerPlateTags)); - assertEquals(getTrimmedList(expected2), actual); + assertEquals(Utilities.getTrimmedList(expected2), actual); } @Test @@ -150,9 +151,9 @@ public void it_generates_code_correctly_when_no_mock_is_presennt() throws IOExce generator = new Generator(interpreterController, writerController, testSuiteParserController); - List actual = getTrimmedList(removeBoilerPlateCode(writer.toString(), boilerPlateTags)); + List actual = Utilities.getTrimmedList(Utilities.removeBoilerPlateCode(writer.toString(), boilerPlateTags)); - assertEquals(getTrimmedList(expected3), actual); + assertEquals(Utilities.getTrimmedList(expected3), actual); } @Test @@ -203,49 +204,9 @@ public void it_inserts_call_mocks_correctly() throws IOException { generator = new Generator(interpreterController, writerController, testSuiteParserController); - List actual = getTrimmedList(removeBoilerPlateCode(writer.toString(), boilerPlateTags)); + List actual = Utilities.getTrimmedList(Utilities.removeBoilerPlateCode(writer.toString(), boilerPlateTags)); - assertEquals(getTrimmedList(expected4), actual); - } - - private List getTrimmedList(String text){ - String[] lines = text.split(Constants.NEWLINE); - List result = new ArrayList<>(); - for (String line : lines){ - result.add(StringHelper.removeTrailingSpaces(line)); - } - return result; - } - - private String removeBoilerPlateCode(String code, List boilerPlateTags){ - boolean insideBoilerPlate = false; - String result = ""; - String[] lines = code.split(Constants.NEWLINE); - for (String line : lines){ - if (line.contains("*")){ - boolean skip = false; - for(String tag : boilerPlateTags){ - if (line.contains(tag)){ - skip = true; - if (line.contains("END")){ - insideBoilerPlate = false; - continue; - } - else { - insideBoilerPlate = true; - continue; - } - } - } - if (skip){ - continue; - } - } - if (!insideBoilerPlate){ - result += line + Constants.NEWLINE; - } - } - return result; + assertEquals(Utilities.getTrimmedList(expected4), actual); } private String expected1 = diff --git a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteConcatenatorIT.java b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteConcatenatorIT.java index 5348f579..0997181d 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteConcatenatorIT.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteConcatenatorIT.java @@ -4,7 +4,6 @@ import org.openmainframeproject.cobolcheck.features.testSuiteParser.TestSuiteConcatenator; import org.openmainframeproject.cobolcheck.features.testSuiteParser.TestSuiteParserController; import org.openmainframeproject.cobolcheck.services.Config; -import org.openmainframeproject.cobolcheck.services.Constants; import org.junit.jupiter.api.Test; import org.junit.jupiter.api.extension.ExtendWith; import org.mockito.MockedStatic; @@ -12,7 +11,6 @@ import org.mockito.junit.jupiter.MockitoExtension; import java.io.*; -import java.nio.file.Path; import static org.junit.jupiter.api.Assertions.assertEquals; diff --git a/src/test/java/org/openmainframeproject/cobolcheck/testhelpers/MD5.java b/src/test/java/org/openmainframeproject/cobolcheck/testhelpers/MD5.java deleted file mode 100644 index 3f4c21d5..00000000 --- a/src/test/java/org/openmainframeproject/cobolcheck/testhelpers/MD5.java +++ /dev/null @@ -1,39 +0,0 @@ -package org.openmainframeproject.cobolcheck.testhelpers; - -import java.io.FileInputStream; -import java.io.InputStream; -import java.security.MessageDigest; - -/** - * Compute MD5 hash of a file. Used in integration tests. - * - * @author Dave Nicolette - * @since 1.8 - */ -public class MD5 { - - public static String MD5HashFile(String filename) throws Exception { - byte[] buf = ChecksumFile(filename); - String res = ""; - for (byte b : buf) { - res += Integer.toString((b & 0xff) + 0x100, 16).substring(1); - } - return res; - } - - public static byte[] ChecksumFile(String filename) throws Exception { - InputStream fis = new FileInputStream(filename); - byte[] buf = new byte[1024]; - MessageDigest complete = MessageDigest.getInstance("MD5"); - int n; - do { - n= fis.read(buf); - if (n > 0) { - complete.update(buf, 0, n); - } - } while (n != -1); - fis.close(); - return complete.digest(); - } - -} diff --git a/src/test/java/org/openmainframeproject/cobolcheck/testhelpers/SystemErr.java b/src/test/java/org/openmainframeproject/cobolcheck/testhelpers/SystemErr.java deleted file mode 100644 index 6bda2813..00000000 --- a/src/test/java/org/openmainframeproject/cobolcheck/testhelpers/SystemErr.java +++ /dev/null @@ -1,20 +0,0 @@ -package org.openmainframeproject.cobolcheck.testhelpers; - -import java.io.ByteArrayOutputStream; -import java.io.PrintStream; - -public class SystemErr { - private final PrintStream originalSystemErr = System.err; - private ByteArrayOutputStream tempSystemErr; - - public void record() { - tempSystemErr = new ByteArrayOutputStream(); - System.setErr(new PrintStream(tempSystemErr)); - } - - public String playback() { - System.setErr(originalSystemErr); - System.setErr(originalSystemErr); - return tempSystemErr.toString(); - } -} diff --git a/src/test/java/org/openmainframeproject/cobolcheck/testhelpers/Utilities.java b/src/test/java/org/openmainframeproject/cobolcheck/testhelpers/Utilities.java new file mode 100644 index 00000000..520d41bf --- /dev/null +++ b/src/test/java/org/openmainframeproject/cobolcheck/testhelpers/Utilities.java @@ -0,0 +1,50 @@ +package org.openmainframeproject.cobolcheck.testhelpers; + +import org.openmainframeproject.cobolcheck.services.Constants; +import org.openmainframeproject.cobolcheck.services.StringHelper; + +import java.util.ArrayList; +import java.util.List; + +public class Utilities { + + public static List getTrimmedList(String text){ + String[] lines = text.split(Constants.NEWLINE); + List result = new ArrayList<>(); + for (String line : lines){ + result.add(StringHelper.removeTrailingSpaces(line)); + } + return result; + } + + public static String removeBoilerPlateCode(String code, List boilerPlateTags){ + boolean insideBoilerPlate = false; + String result = ""; + String[] lines = code.split(Constants.NEWLINE); + for (String line : lines){ + if (line.contains("*")){ + boolean skip = false; + for(String tag : boilerPlateTags){ + if (line.contains(tag)){ + skip = true; + if (line.contains("END")){ + insideBoilerPlate = false; + continue; + } + else { + insideBoilerPlate = true; + continue; + } + } + } + if (skip){ + continue; + } + } + if (!insideBoilerPlate){ + result += line + Constants.NEWLINE; + } + } + return result; + } +} diff --git a/testconfig.properties b/testconfig.properties index b23b616b..f2d15909 100644 --- a/testconfig.properties +++ b/testconfig.properties @@ -89,7 +89,7 @@ application.source.filename.suffix = CBL,cbl,COB,cob # If application copybook filenames have a suffix, specify it here without the period or dot # e.g. application.copybook.filename.suffix = CBL #--------------------------------------------------------------------------------------------------------------------- -application.copybook.filename.suffix = CBL,cbl,COB,cob +application.copybook.filename.suffix = CBL,cbl,COB,cob,CPY,cpy #--------------------------------------------------------------------------------------------------------------------- # Optional override of system default Locale for log messages and exception messages. From ebff04c2cef60e9e4ffd93f3cfb27d07b0d4b3a3 Mon Sep 17 00:00:00 2001 From: Rune Christensen Date: Tue, 8 Aug 2023 15:44:12 +0200 Subject: [PATCH 112/180] Bug fixes Signed-off-by: Rune Christensen --- .../cobolcheck/services/cobolLogic/Interpreter.java | 1 - src/test/java/org/openmainframeproject/cobolcheck/MockIT.java | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java b/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java index 14d92773..e9f2e9cf 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java @@ -256,7 +256,6 @@ public static boolean shouldLineBeStubbed(CobolLine line, State state) { if (state.isFlagSetFor(Constants.WORKING_STORAGE_SECTION)) { if (line.containsToken(Constants.EXEC_SQL_TOKEN) || line.containsToken(Constants.INCLUDE) || line.containsToken(Constants.END_EXEC_TOKEN)) return true; - } } return false; } diff --git a/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java b/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java index c673d197..c9a51f02 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java @@ -207,6 +207,7 @@ public void it_inserts_call_mocks_correctly() throws IOException { List actual = Utilities.getTrimmedList(Utilities.removeBoilerPlateCode(writer.toString(), boilerPlateTags)); assertEquals(Utilities.getTrimmedList(expected4), actual); + } @Test public void it_inserts_call_mocks_without_commas_correctly() throws IOException { From 7f28e747ad84527e3465e4f9f045a251d057710a Mon Sep 17 00:00:00 2001 From: dakaa16 Date: Wed, 9 Aug 2023 09:23:19 +0200 Subject: [PATCH 113/180] Update Formatter.java small formatting fix Signed-off-by: dakaa16 --- .../features/launcher/Formatter/Formats/Formatter.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/Formatter/Formats/Formatter.java b/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/Formatter/Formats/Formatter.java index 9b79423b..ce0fbd8c 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/Formatter/Formats/Formatter.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/launcher/Formatter/Formats/Formatter.java @@ -116,7 +116,7 @@ else if (expectNumberFailed){ } else if (line.trim().toUpperCase(Locale.ROOT).startsWith(passKeyword) || - line.trim().toUpperCase(Locale.ROOT).startsWith(failPrefixKeyword + " " + failKeyword)){ + line.trim().toUpperCase(Locale.ROOT).startsWith(failPrefixKeyword + " " + failKeyword)){ try{ setTestCaseValues(line); } catch (PossibleInternalLogicErrorException e){ From 5e3b174e5c79390d0f5423500801e8103e653694 Mon Sep 17 00:00:00 2001 From: issacto Date: Wed, 9 Aug 2023 20:12:33 +0100 Subject: [PATCH 114/180] refactor Signed-off-by: issacto --- .../features/interpreter/Block.java | 25 ++++++ .../interpreter/InterpreterController.java | 26 +++---- .../interpreter/MockedSectionOrPargraph.java | 25 ------ .../testSuiteParser/CobolGenerator.java | 2 +- .../features/testSuiteParser/Mock.java | 3 - .../testSuiteParser/MockGenerator.java | 30 ------- .../testSuiteParser/TestSuiteParser.java | 17 ++-- .../TestSuiteParserController.java | 22 +++--- .../features/testSuiteParser/WhenOther.java | 78 +++++++++++++++++++ .../testSuiteParser/WhenOtherGenerator.java | 37 +++++++++ .../cobolcheck/workers/Generator.java | 19 ++--- 11 files changed, 181 insertions(+), 103 deletions(-) create mode 100644 src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/Block.java delete mode 100644 src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/MockedSectionOrPargraph.java create mode 100644 src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/WhenOther.java create mode 100644 src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/WhenOtherGenerator.java diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/Block.java b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/Block.java new file mode 100644 index 00000000..7a43207f --- /dev/null +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/Block.java @@ -0,0 +1,25 @@ +package org.openmainframeproject.cobolcheck.features.interpreter; + +import java.util.ArrayList; +import java.util.List; + +public class Block { + + private List lines; + + public Block(){ + lines = new ArrayList<>(); + } + + void addLine(String line){ + lines.add(line); + } + + List getLines(){ + return lines; + } + + void removeLines(){ + lines.clear(); + } +} diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java index adcca3c9..37055c4e 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java @@ -27,7 +27,7 @@ public class InterpreterController { private boolean insideSectionOrParagraphMockBody; private TreeMap currentDataStructure; private final String stubTag; - private MockedSectionOrPargraph mockedSection; + private Block block; public InterpreterController(BufferedReader sourceReader) { if (sourceReader == null) { @@ -40,7 +40,7 @@ public InterpreterController(BufferedReader sourceReader) { tokenExtractor = new StringTokenizerExtractor(); currentDataStructure = new TreeMap<>(); stubTag = Config.getStubTag(); - mockedSection = new MockedSectionOrPargraph(); + block = new Block(); } //Getters for lists of specific source lines @@ -507,27 +507,27 @@ private void resetPossibleMockValues(){ possibleMockType = null; } - public List getSectionLines(){ - return mockedSection.getSectionLines(); + public List getBlockLines(){ + return block.getLines(); } - public void removeSectionLines(){ - mockedSection.removeSectionLines(); + public void removeBlockLines(){ + block.removeLines(); } - public void addMockedSectionLine(){ + public void addBlockLine(){ if(Interpreter.shouldLineBeStubbed(reader.getCurrentLine(), reader.getState())) - mockedSection.addSectionLine(StringHelper.stubLine(reader.getCurrentLine().getUnNumberedString(), stubTag)); - else mockedSection.addSectionLine(reader.getCurrentLine().getUnNumberedString()); + block.addLine(StringHelper.stubLine(reader.getCurrentLine().getUnNumberedString(), stubTag)); + else block.addLine(reader.getCurrentLine().getUnNumberedString()); } - public void addMockedSectionLine(String line){ - mockedSection.addSectionLine(line); + public void addBlockLine(String line){ + block.addLine(line); } - public void addMockedSectionLines(List lines){ + public void addBlockLines(List lines){ for (String line : lines){ - mockedSection.addSectionLine(line); + block.addLine(line); } } diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/MockedSectionOrPargraph.java b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/MockedSectionOrPargraph.java deleted file mode 100644 index c6d5cdc8..00000000 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/MockedSectionOrPargraph.java +++ /dev/null @@ -1,25 +0,0 @@ -package org.openmainframeproject.cobolcheck.features.interpreter; - -import java.util.ArrayList; -import java.util.List; - -public class MockedSectionOrPargraph { - - private List sectionLines; - - public MockedSectionOrPargraph(){ - sectionLines = new ArrayList<>(); - } - - void addSectionLine(String line){ - sectionLines.add(line); - } - - List getSectionLines(){ - return sectionLines; - } - - void removeSectionLines(){ - sectionLines.clear(); - } -} diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/CobolGenerator.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/CobolGenerator.java index d12be6c8..5c266f2f 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/CobolGenerator.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/CobolGenerator.java @@ -75,7 +75,7 @@ static void addStartAndEndTags(List lines){ lines.add(getInjectEndTagComment()); } - static List generateWhenOtherMockLines(String identifier, String type, List commentLines, List bodyLines){ + static List generateWhenOtherLines(String identifier, String type, List commentLines, List bodyLines){ List lines = new ArrayList<>(); if(type.equals(Constants.SECTION_TOKEN)) lines.add(String.format(WHEN_OTHER_SECTION_HEADER_FORMAT, identifier)); diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Mock.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Mock.java index cc669e65..ba5717d0 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Mock.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Mock.java @@ -166,7 +166,4 @@ private String getArgumentText(){ return combinedArgs.substring(0, combinedArgs.length() - 2); } - public void addLinesWithoutMoving(List lines) { - this.lines.addAll(lines); - } } diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/MockGenerator.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/MockGenerator.java index 895967eb..eb188db6 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/MockGenerator.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/MockGenerator.java @@ -156,36 +156,6 @@ private List generateParagraphsForMock(Mock mock, boolean withComment){ body.addAll(mock.getLines()); return CobolGenerator.generateParagraphLines(mock.getGeneratedMockIdentifier(), comments, body); } - - /**Generates the lines for Paragraphs based on mocks, - * for each mock in a given list. - * @param mocks - The mocks to generate Paragraphs for - * @return The generated lines - */ - List generateWhenOtherMock(Mock mock, boolean withComments){ - List lines = new ArrayList<>(); - lines.addAll(CobolGenerator.generateCommentBlock("Paragraphs called when mocking")); - lines.addAll(generateParagraphsForWhenOtherMock(mock, withComments)); - lines.add(""); - return lines; - } - - String generateWhenOtherMockPerformCall(Mock mock){ - return String.format(performFormat, mock.getGeneratedMockIdentifier()); - } - - private List generateParagraphsForWhenOtherMock(Mock mock, boolean withComment){ - List comments = new ArrayList<>(); - if (withComment){ - for (String line : mock.getCommentText()){ - comments.add(StringHelper.commentOutLine(line)); - } - } - List body = new ArrayList<>(); - body.addAll(mock.getLines()); - return CobolGenerator.generateWhenOtherMockLines(mock.getGeneratedMockIdentifier(),mock.getType(), comments, body); - } - } diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index 69502c34..1006c435 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -75,6 +75,7 @@ public class TestSuiteParser { private String currentTestCaseName = Constants.EMPTY_STRING; private int testCaseNumber = 0; private boolean expectNumericCompare; + private int whenOtherNumber=0; // Lines inserted into the test program private static final String COBOL_PERFORM_INITIALIZE = " PERFORM %sINITIALIZE"; @@ -1160,14 +1161,14 @@ public String getCurrentFieldName() { return currentFieldName; } - public Mock getWhenOtherMock(String type, List lines, String itdentifier, boolean withComments){ - mockNumber += 1; - Mock mock = new Mock(currentTestSuiteName ,currentTestCaseName, testSuiteNumber, testCaseNumber,mockNumber); - mock.addLinesWithoutMoving(lines); - mock.setScope(MockScope.Local); - mock.setType(type); - mock.setIdentifier(itdentifier); - return mock; + public WhenOther getWhenOtherBlock(String type, List lines, String itdentifier, boolean withComments){ + WhenOther whenOther = new WhenOther(currentTestSuiteName ,currentTestCaseName, testSuiteNumber, testCaseNumber,whenOtherNumber); + whenOther.addLines(lines); + whenOther.setScope(MockScope.Local); + whenOther.setType(type); + whenOther.setIdentifier(itdentifier); + whenOtherNumber += 1; + return whenOther; } diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParserController.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParserController.java index c10a6a97..32b6be9f 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParserController.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParserController.java @@ -21,6 +21,7 @@ public class TestSuiteParserController { private BeforeAfterRepo beforeAfterRepo; private MockGenerator mockGenerator; private BufferedReader testSuiteReader; + private WhenOtherGenerator whenOtherGenerator; private TestSuiteErrorLog testSuiteErrorLog; @@ -54,6 +55,7 @@ public TestSuiteParserController(String testFileNames) { testSuiteParser = new TestSuiteParser(new KeywordExtractor(), mockRepository, beforeAfterRepo, testSuiteErrorLog); mockGenerator = new MockGenerator(); testCodePrefix = Config.getTestCodePrefix(); + whenOtherGenerator = new WhenOtherGenerator(); } //Used for testing only @@ -314,17 +316,15 @@ public void prepareNextParse() { Config.setDecimalPointIsCommaFromFile(); } - public Mock getWhenOtherMock(String type, List lines, String identifier, boolean withComments){ - // Local scope - return testSuiteParser.getWhenOtherMock(type,lines, identifier, withComments); - } - - public String generateWhenOtherMockPerformCall(Mock mock){ - return mockGenerator.generateWhenOtherMockPerformCall(mock); - } - - public List generateWhenOtherMock(Mock mock, boolean withComments){ - return mockGenerator.generateWhenOtherMock(mock, withComments); + public List generateWhenOtherBlock(String type, List blocklines, String sourceLine, String identifier, boolean withComments) throws IOException{ + List lines = new ArrayList<>(); + WhenOther whenOther = testSuiteParser.getWhenOtherBlock(type, blocklines, identifier, true); + lines.add(whenOtherGenerator.generateWhenOtherCall(whenOther)); + lines.addAll(this.getEndEvaluateLine()); + lines.add(sourceLine); + lines.add(""); + lines.addAll(whenOtherGenerator.generateWhenOther(whenOther, withComments)); + return lines; } diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/WhenOther.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/WhenOther.java new file mode 100644 index 00000000..a27012e2 --- /dev/null +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/WhenOther.java @@ -0,0 +1,78 @@ +package org.openmainframeproject.cobolcheck.features.testSuiteParser; + + +import java.util.ArrayList; +import java.util.List; + +import org.openmainframeproject.cobolcheck.services.Config; +import org.openmainframeproject.cobolcheck.services.StringHelper; + +public class WhenOther { + + private String identifier; + private String type; + private List lines; + private MockScope scope; + private String testSuiteName; + private String testCaseName; + private int testSuiteNumber; + private int testCaseNumber; + private int mockNumber; + + + public WhenOther(String testSuiteName, String testCaseName, int testSuiteNumber, int testCaseNumber, int mockNumber) { + this.testSuiteName = testSuiteName; + this.testCaseName = testCaseName; + this.testSuiteNumber = testSuiteNumber; + this.testCaseNumber = testCaseNumber; + this.mockNumber = mockNumber; + lines = new ArrayList<>(); + } + + public String getGeneratedWhenOtherIdentifier(){ + return Config.getTestCodePrefix() + getGeneratedWhenOtherIdentifierRoot(); + } + + public String getGeneratedWhenOtherIdentifierRoot(){ + return testSuiteNumber + "-" + testCaseNumber + "-" + mockNumber + "-WO"; + } + + public void addLines(List lines) { + this.lines.addAll(lines); + } + + public void setScope(MockScope scope) { + this.scope = scope; + } + + public void setType(String type) { + this.type = type; + } + + public String getType() { + return this.type; + } + + public List getLines() { + return this.lines; + } + + public void setIdentifier(String identifier) { + this.identifier = identifier; + } + + + public List getCommentText(){ + List newLines = new ArrayList<>(); + newLines.add(" *****************************************************************"); + newLines.add( "When other block of: " + type + ": " + identifier); + newLines.add("In testsuite: " + testSuiteName); + if (scope == MockScope.Local){ + newLines.add("In testcase: " + testCaseName); + } + newLines.add(" *****************************************************************"); + return newLines; + + } + +} diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/WhenOtherGenerator.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/WhenOtherGenerator.java new file mode 100644 index 00000000..60b5bdf6 --- /dev/null +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/WhenOtherGenerator.java @@ -0,0 +1,37 @@ +package org.openmainframeproject.cobolcheck.features.testSuiteParser; + +import java.util.ArrayList; +import java.util.List; + +import org.openmainframeproject.cobolcheck.services.StringHelper; + +public class WhenOtherGenerator { + private final String performFormat = " PERFORM %s"; + + + public String generateWhenOtherCall(WhenOther whenOther) { + return String.format(performFormat, whenOther.getGeneratedWhenOtherIdentifier()); + } + + List generateWhenOther(WhenOther whenOther, boolean withComments){ + List lines = new ArrayList<>(); + lines.addAll(CobolGenerator.generateCommentBlock("WhenOther block called when mocking")); + lines.addAll(generateParagraphsForWhenOther(whenOther, withComments)); + lines.add(""); + return lines; + } + + private List generateParagraphsForWhenOther(WhenOther whenOther, boolean withComments){ + List comments = new ArrayList<>(); + if (withComments){ + for (String line : whenOther.getCommentText()){ + comments.add(StringHelper.commentOutLine(line)); + } + } + List body = new ArrayList<>(); + body.addAll(whenOther.getLines()); + return CobolGenerator.generateWhenOtherLines(whenOther.getGeneratedWhenOtherIdentifier(), whenOther.getType(), comments, body); + } + + +} diff --git a/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java b/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java index a8b382e1..1122b2d2 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java @@ -143,8 +143,8 @@ private String tryInsertEndEvaluateAtMockedCompomentEnd(String sourceLine) throw if (interpreter.isInsideSectionOrParagraphMockBody()){ if (interpreter.isCurrentLineEndingSectionOrParagraph()){ if (interpreter.canWriteEndEvaluateBeforeCurrentLine()){ - writeWhenOtherMockedSection(sourceLine); - interpreter.removeSectionLines(); + writeWhenOtherBlock(sourceLine); + interpreter.removeBlockLines(); interpreter.setInsideSectionOrParagraphMockBody(false); return ""; } @@ -206,9 +206,9 @@ private void processingAfterEchoingSourceLineToOutput() throws IOException { List arguments = interpreter.getPossibleMockArgs(); if (testSuiteParserController.mockExistsFor(identifier, type, arguments)){ if(interpreter.isInsideSectionOrParagraphMockBody()){ - interpreter.addMockedSectionLines(testSuiteParserController.generateMockPerformCalls(identifier, type, arguments)); + interpreter.addBlockLines(testSuiteParserController.generateMockPerformCalls(identifier, type, arguments)); if (type.equals(Constants.CALL_TOKEN)){ - interpreter.addMockedSectionLine(" CONTINUE"); + interpreter.addBlockLine(" CONTINUE"); } }else writerController.writeLines(testSuiteParserController.generateMockPerformCalls(identifier, type, arguments)); if (type.equals(Constants.SECTION_TOKEN) || type.equals(Constants.PARAGRAPH_TOKEN)){ @@ -226,19 +226,14 @@ private void closeReadersAndWriters(String programName) { writerController.closeWriter(programName); } - private void writeWhenOtherMockedSection(String sourceLine) throws IOException{ - Mock mock = testSuiteParserController.getWhenOtherMock(currentMockType, interpreter.getSectionLines(), currentIdentifier, true); - writerController.writeLine(testSuiteParserController.generateWhenOtherMockPerformCall(mock)); - writerController.writeLines(testSuiteParserController.getEndEvaluateLine()); - writerController.writeLine(sourceLine); - writerController.writeLine(""); - writerController.writeLines(testSuiteParserController.generateWhenOtherMock(mock,true)); + private void writeWhenOtherBlock(String sourceLine) throws IOException{ + writerController.writeLines(testSuiteParserController.generateWhenOtherBlock(currentMockType, interpreter.getBlockLines(), sourceLine, currentIdentifier, true)); } private void echoingSourceLineToOutput(String sourceLine){ try{ if(interpreter.isInsideSectionOrParagraphMockBody()){ - interpreter.addMockedSectionLine(); + interpreter.addBlockLine(); } sourceLine = tryInsertEndEvaluateAtMockedCompomentEnd(sourceLine); if(!interpreter.isInsideSectionOrParagraphMockBody()){ From 58a1f870dd3d848134f85fa49f2687056da76b71 Mon Sep 17 00:00:00 2001 From: issacto Date: Wed, 9 Aug 2023 20:57:17 +0100 Subject: [PATCH 115/180] refactor second part Signed-off-by: issacto --- .../TestSuiteParserController.java | 1 + .../testSuiteParser/WhenOtherGenerator.java | 4 +- .../cobolcheck/MockIT.java | 57 ++++++++++--------- 3 files changed, 32 insertions(+), 30 deletions(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParserController.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParserController.java index 32b6be9f..aabe1568 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParserController.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParserController.java @@ -67,6 +67,7 @@ public TestSuiteParserController(BufferedReader reader) { testSuiteParser = new TestSuiteParser(new KeywordExtractor(), mockRepository, beforeAfterRepo, testSuiteErrorLog); mockGenerator = new MockGenerator(); testCodePrefix = Config.getString(Constants.COBOLCHECK_PREFIX_CONFIG_KEY, Constants.DEFAULT_COBOLCHECK_PREFIX); + whenOtherGenerator = new WhenOtherGenerator(); } public boolean hasWorkingStorageTestCodeBeenInserted() { diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/WhenOtherGenerator.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/WhenOtherGenerator.java index 60b5bdf6..9165eb16 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/WhenOtherGenerator.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/WhenOtherGenerator.java @@ -9,13 +9,13 @@ public class WhenOtherGenerator { private final String performFormat = " PERFORM %s"; - public String generateWhenOtherCall(WhenOther whenOther) { + String generateWhenOtherCall(WhenOther whenOther) { return String.format(performFormat, whenOther.getGeneratedWhenOtherIdentifier()); } List generateWhenOther(WhenOther whenOther, boolean withComments){ List lines = new ArrayList<>(); - lines.addAll(CobolGenerator.generateCommentBlock("WhenOther block called when mocking")); + lines.addAll(CobolGenerator.generateCommentBlock("WhenOther block called")); lines.addAll(generateParagraphsForWhenOther(whenOther, withComments)); lines.add(""); return lines; diff --git a/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java b/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java index 152d0b5b..91c15e5e 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java @@ -77,6 +77,7 @@ public void it_inserts_a_mock_correctly() throws IOException { Mockito.when(mockedInterpreterReader.readLine()).thenReturn(s1, s2, s3, s4, s5, s6, null); Mockito.when(mockedParserReader.readLine()).thenReturn(t1, t2, t3, t4, null); + generator = new Generator(interpreterController, writerController, testSuiteParserController); @@ -351,16 +352,16 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " ALSO ANY " + Constants.NEWLINE + " PERFORM UT-1-0-1-MOCK " + Constants.NEWLINE + " WHEN OTHER " + Constants.NEWLINE + - " PERFORM UT-1-0-2-MOCK " + Constants.NEWLINE + + " PERFORM UT-1-0-0-WO " + Constants.NEWLINE + " END-EVALUATE " + Constants.NEWLINE + " . " + Constants.NEWLINE + " " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *Paragraphs called when mocking " + Constants.NEWLINE + + " *WhenOther block called " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " UT-1-0-2-MOCK SECTION. " + Constants.NEWLINE + + " UT-1-0-0-WO SECTION. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *Local mock of: SECTION: 000-START " + Constants.NEWLINE + + " *When other block of: SECTION: 000-START " + Constants.NEWLINE + " *In testsuite: \"Mocking tests\" " + Constants.NEWLINE + " *In testcase: " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + @@ -514,16 +515,16 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " ALSO ANY " + Constants.NEWLINE + " PERFORM UT-1-0-1-MOCK " + Constants.NEWLINE + " WHEN OTHER " + Constants.NEWLINE + - " PERFORM UT-1-2-4-MOCK " + Constants.NEWLINE + + " PERFORM UT-1-2-0-WO " + Constants.NEWLINE + " END-EVALUATE " + Constants.NEWLINE + " . " + Constants.NEWLINE + " " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *Paragraphs called when mocking " + Constants.NEWLINE + + " *WhenOther block called " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " UT-1-2-4-MOCK SECTION. " + Constants.NEWLINE + + " UT-1-2-0-WO SECTION. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *Local mock of: SECTION: 000-START " + Constants.NEWLINE + + " *When other block of: SECTION: 000-START " + Constants.NEWLINE + " *In testsuite: \"Mocking tests\" " + Constants.NEWLINE + " *In testcase: \"Simply a test\" " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + @@ -541,16 +542,16 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " ALSO \"Simply a test\" " + Constants.NEWLINE + " PERFORM UT-1-2-2-MOCK " + Constants.NEWLINE + " WHEN OTHER " + Constants.NEWLINE + - " PERFORM UT-1-2-5-MOCK " + Constants.NEWLINE + + " PERFORM UT-1-2-1-WO " + Constants.NEWLINE + " END-EVALUATE " + Constants.NEWLINE + " . " + Constants.NEWLINE + " " + Constants.NEWLINE+ " ***************************************************************** " + Constants.NEWLINE + - " *Paragraphs called when mocking " + Constants.NEWLINE + + " *WhenOther block called " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " UT-1-2-5-MOCK SECTION. " + Constants.NEWLINE + + " UT-1-2-1-WO SECTION. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *Local mock of: SECTION: 100-WELCOME " + Constants.NEWLINE + + " *When other block of: SECTION: 100-WELCOME " + Constants.NEWLINE + " *In testsuite: \"Mocking tests\" " + Constants.NEWLINE + " *In testcase: \"Simply a test\" " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + @@ -566,16 +567,16 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " ALSO \"Simply a test\" " + Constants.NEWLINE + " PERFORM UT-1-2-3-MOCK " + Constants.NEWLINE + " WHEN OTHER " + Constants.NEWLINE + - " PERFORM UT-1-2-6-MOCK " + Constants.NEWLINE + + " PERFORM UT-1-2-2-WO " + Constants.NEWLINE + " END-EVALUATE " + Constants.NEWLINE + " . " + Constants.NEWLINE + " " + Constants.NEWLINE+ " ***************************************************************** " + Constants.NEWLINE + - " *Paragraphs called when mocking " + Constants.NEWLINE + + " *WhenOther block called " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " UT-1-2-6-MOCK SECTION. " + Constants.NEWLINE + + " UT-1-2-2-WO SECTION. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *Local mock of: SECTION: 200-GOODBYE " + Constants.NEWLINE + + " *When other block of: SECTION: 200-GOODBYE " + Constants.NEWLINE + " *In testsuite: \"Mocking tests\" " + Constants.NEWLINE + " *In testcase: \"Simply a test\" " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + @@ -792,16 +793,16 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " ALSO \"Simply a test\" " + Constants.NEWLINE + " PERFORM UT-1-2-1-MOCK " + Constants.NEWLINE + " WHEN OTHER " + Constants.NEWLINE + - " PERFORM UT-1-2-4-MOCK " + Constants.NEWLINE + + " PERFORM UT-1-2-0-WO " + Constants.NEWLINE + " END-EVALUATE " + Constants.NEWLINE + " . " + Constants.NEWLINE + " " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *Paragraphs called when mocking " + Constants.NEWLINE + + " *WhenOther block called " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " UT-1-2-4-MOCK SECTION. " + Constants.NEWLINE + + " UT-1-2-0-WO SECTION. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *Local mock of: SECTION: 000-START " + Constants.NEWLINE + + " *When other block of: SECTION: 000-START " + Constants.NEWLINE + " *In testsuite: \"Mocking tests\" " + Constants.NEWLINE + " *In testcase: \"Simply a test\" " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + @@ -818,16 +819,16 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " ALSO ANY " + Constants.NEWLINE + " PERFORM UT-1-0-1-MOCK " + Constants.NEWLINE + " WHEN OTHER " + Constants.NEWLINE + - " PERFORM UT-1-2-5-MOCK " + Constants.NEWLINE + + " PERFORM UT-1-2-1-WO " + Constants.NEWLINE + " END-EVALUATE " + Constants.NEWLINE + " . " + Constants.NEWLINE + " " + Constants.NEWLINE+ " ***************************************************************** " + Constants.NEWLINE + - " *Paragraphs called when mocking " + Constants.NEWLINE + + " *WhenOther block called " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " UT-1-2-5-MOCK SECTION. " + Constants.NEWLINE + + " UT-1-2-1-WO SECTION. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *Local mock of: SECTION: 100-WELCOME " + Constants.NEWLINE + + " *When other block of: SECTION: 100-WELCOME " + Constants.NEWLINE + " *In testsuite: \"Mocking tests\" " + Constants.NEWLINE + " *In testcase: \"Simply a test\" " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + @@ -854,16 +855,16 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " ALSO \"Simply a test\" " + Constants.NEWLINE + " PERFORM UT-1-2-3-MOCK " + Constants.NEWLINE + " WHEN OTHER " + Constants.NEWLINE + - " PERFORM UT-1-2-6-MOCK " + Constants.NEWLINE + + " PERFORM UT-1-2-2-WO " + Constants.NEWLINE + " END-EVALUATE " + Constants.NEWLINE + " . " + Constants.NEWLINE + " " + Constants.NEWLINE+ " ***************************************************************** " + Constants.NEWLINE + - " *Paragraphs called when mocking " + Constants.NEWLINE + + " *WhenOther block called " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " UT-1-2-6-MOCK SECTION. " + Constants.NEWLINE + + " UT-1-2-2-WO SECTION. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *Local mock of: SECTION: 200-GOODBYE " + Constants.NEWLINE + + " *When other block of: SECTION: 200-GOODBYE " + Constants.NEWLINE + " *In testsuite: \"Mocking tests\" " + Constants.NEWLINE + " *In testcase: \"Simply a test\" " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + From 194186164ea8351e0d25dbad2524634c28f62903 Mon Sep 17 00:00:00 2001 From: issacto Date: Thu, 10 Aug 2023 15:07:24 +0100 Subject: [PATCH 116/180] refactor - third part --- .../interpreter/InterpreterController.java | 26 ++++++------ .../{Block.java => SectionOrParagraph.java} | 4 +- .../testSuiteParser/TestSuiteParser.java | 5 +-- .../TestSuiteParserController.java | 4 +- .../features/testSuiteParser/WhenOther.java | 17 +------- .../testSuiteParser/WhenOtherGenerator.java | 2 +- .../cobolcheck/workers/Generator.java | 14 +++---- .../cobolcheck/MockIT.java | 42 +++++++------------ 8 files changed, 43 insertions(+), 71 deletions(-) rename src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/{Block.java => SectionOrParagraph.java} (84%) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java index 37055c4e..ab4db17b 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java @@ -27,7 +27,7 @@ public class InterpreterController { private boolean insideSectionOrParagraphMockBody; private TreeMap currentDataStructure; private final String stubTag; - private Block block; + private SectionOrParagraph sectionOrParagraph; public InterpreterController(BufferedReader sourceReader) { if (sourceReader == null) { @@ -40,7 +40,7 @@ public InterpreterController(BufferedReader sourceReader) { tokenExtractor = new StringTokenizerExtractor(); currentDataStructure = new TreeMap<>(); stubTag = Config.getStubTag(); - block = new Block(); + sectionOrParagraph = new SectionOrParagraph(); } //Getters for lists of specific source lines @@ -507,27 +507,27 @@ private void resetPossibleMockValues(){ possibleMockType = null; } - public List getBlockLines(){ - return block.getLines(); + public List getSectionOrParagraphLines(){ + return sectionOrParagraph.getLines(); } - public void removeBlockLines(){ - block.removeLines(); + public void removeSectionOrParagraphLines(){ + sectionOrParagraph.removeLines(); } - public void addBlockLine(){ + public void addSectionOrParagraphLine(){ if(Interpreter.shouldLineBeStubbed(reader.getCurrentLine(), reader.getState())) - block.addLine(StringHelper.stubLine(reader.getCurrentLine().getUnNumberedString(), stubTag)); - else block.addLine(reader.getCurrentLine().getUnNumberedString()); + sectionOrParagraph.addLine(StringHelper.stubLine(reader.getCurrentLine().getUnNumberedString(), stubTag)); + else sectionOrParagraph.addLine(reader.getCurrentLine().getUnNumberedString()); } - public void addBlockLine(String line){ - block.addLine(line); + public void addSectionOrParagraphLine(String line){ + sectionOrParagraph.addLine(line); } - public void addBlockLines(List lines){ + public void addSectionOrParagraphLines(List lines){ for (String line : lines){ - block.addLine(line); + sectionOrParagraph.addLine(line); } } diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/Block.java b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/SectionOrParagraph.java similarity index 84% rename from src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/Block.java rename to src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/SectionOrParagraph.java index 7a43207f..df74a952 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/Block.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/SectionOrParagraph.java @@ -3,11 +3,11 @@ import java.util.ArrayList; import java.util.List; -public class Block { +public class SectionOrParagraph { private List lines; - public Block(){ + public SectionOrParagraph(){ lines = new ArrayList<>(); } diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index 1006c435..278d8504 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -1161,10 +1161,9 @@ public String getCurrentFieldName() { return currentFieldName; } - public WhenOther getWhenOtherBlock(String type, List lines, String itdentifier, boolean withComments){ - WhenOther whenOther = new WhenOther(currentTestSuiteName ,currentTestCaseName, testSuiteNumber, testCaseNumber,whenOtherNumber); + public WhenOther getWhenOtherSectionOrParagraph(String type, List lines, String itdentifier, boolean withComments){ + WhenOther whenOther = new WhenOther(testSuiteNumber, testCaseNumber, whenOtherNumber); whenOther.addLines(lines); - whenOther.setScope(MockScope.Local); whenOther.setType(type); whenOther.setIdentifier(itdentifier); whenOtherNumber += 1; diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParserController.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParserController.java index aabe1568..60581522 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParserController.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParserController.java @@ -317,9 +317,9 @@ public void prepareNextParse() { Config.setDecimalPointIsCommaFromFile(); } - public List generateWhenOtherBlock(String type, List blocklines, String sourceLine, String identifier, boolean withComments) throws IOException{ + public List generateWhenOtherSectionOrParagraph(String type, List sectionOrParagraphlines, String sourceLine, String identifier, boolean withComments) throws IOException{ List lines = new ArrayList<>(); - WhenOther whenOther = testSuiteParser.getWhenOtherBlock(type, blocklines, identifier, true); + WhenOther whenOther = testSuiteParser.getWhenOtherSectionOrParagraph(type, sectionOrParagraphlines, identifier, true); lines.add(whenOtherGenerator.generateWhenOtherCall(whenOther)); lines.addAll(this.getEndEvaluateLine()); lines.add(sourceLine); diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/WhenOther.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/WhenOther.java index a27012e2..7cdd58f8 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/WhenOther.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/WhenOther.java @@ -12,17 +12,12 @@ public class WhenOther { private String identifier; private String type; private List lines; - private MockScope scope; - private String testSuiteName; - private String testCaseName; private int testSuiteNumber; private int testCaseNumber; private int mockNumber; - public WhenOther(String testSuiteName, String testCaseName, int testSuiteNumber, int testCaseNumber, int mockNumber) { - this.testSuiteName = testSuiteName; - this.testCaseName = testCaseName; + public WhenOther(int testSuiteNumber, int testCaseNumber, int mockNumber) { this.testSuiteNumber = testSuiteNumber; this.testCaseNumber = testCaseNumber; this.mockNumber = mockNumber; @@ -41,10 +36,6 @@ public void addLines(List lines) { this.lines.addAll(lines); } - public void setScope(MockScope scope) { - this.scope = scope; - } - public void setType(String type) { this.type = type; } @@ -65,11 +56,7 @@ public void setIdentifier(String identifier) { public List getCommentText(){ List newLines = new ArrayList<>(); newLines.add(" *****************************************************************"); - newLines.add( "When other block of: " + type + ": " + identifier); - newLines.add("In testsuite: " + testSuiteName); - if (scope == MockScope.Local){ - newLines.add("In testcase: " + testCaseName); - } + newLines.add( "WhenOther of: " + type + ": " + identifier); newLines.add(" *****************************************************************"); return newLines; diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/WhenOtherGenerator.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/WhenOtherGenerator.java index 9165eb16..f00a7736 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/WhenOtherGenerator.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/WhenOtherGenerator.java @@ -15,7 +15,7 @@ String generateWhenOtherCall(WhenOther whenOther) { List generateWhenOther(WhenOther whenOther, boolean withComments){ List lines = new ArrayList<>(); - lines.addAll(CobolGenerator.generateCommentBlock("WhenOther block called")); + lines.addAll(CobolGenerator.generateCommentBlock("WhenOther Paragraph or Section called")); lines.addAll(generateParagraphsForWhenOther(whenOther, withComments)); lines.add(""); return lines; diff --git a/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java b/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java index 1122b2d2..ae633ab1 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java @@ -143,8 +143,8 @@ private String tryInsertEndEvaluateAtMockedCompomentEnd(String sourceLine) throw if (interpreter.isInsideSectionOrParagraphMockBody()){ if (interpreter.isCurrentLineEndingSectionOrParagraph()){ if (interpreter.canWriteEndEvaluateBeforeCurrentLine()){ - writeWhenOtherBlock(sourceLine); - interpreter.removeBlockLines(); + writeWhenOtherSectionOrParagraph(sourceLine); + interpreter.removeSectionOrParagraphLines(); interpreter.setInsideSectionOrParagraphMockBody(false); return ""; } @@ -206,9 +206,9 @@ private void processingAfterEchoingSourceLineToOutput() throws IOException { List arguments = interpreter.getPossibleMockArgs(); if (testSuiteParserController.mockExistsFor(identifier, type, arguments)){ if(interpreter.isInsideSectionOrParagraphMockBody()){ - interpreter.addBlockLines(testSuiteParserController.generateMockPerformCalls(identifier, type, arguments)); + interpreter.addSectionOrParagraphLines(testSuiteParserController.generateMockPerformCalls(identifier, type, arguments)); if (type.equals(Constants.CALL_TOKEN)){ - interpreter.addBlockLine(" CONTINUE"); + interpreter.addSectionOrParagraphLine(" CONTINUE"); } }else writerController.writeLines(testSuiteParserController.generateMockPerformCalls(identifier, type, arguments)); if (type.equals(Constants.SECTION_TOKEN) || type.equals(Constants.PARAGRAPH_TOKEN)){ @@ -226,14 +226,14 @@ private void closeReadersAndWriters(String programName) { writerController.closeWriter(programName); } - private void writeWhenOtherBlock(String sourceLine) throws IOException{ - writerController.writeLines(testSuiteParserController.generateWhenOtherBlock(currentMockType, interpreter.getBlockLines(), sourceLine, currentIdentifier, true)); + private void writeWhenOtherSectionOrParagraph(String sourceLine) throws IOException{ + writerController.writeLines(testSuiteParserController.generateWhenOtherSectionOrParagraph(currentMockType, interpreter.getSectionOrParagraphLines(), sourceLine, currentIdentifier, true)); } private void echoingSourceLineToOutput(String sourceLine){ try{ if(interpreter.isInsideSectionOrParagraphMockBody()){ - interpreter.addBlockLine(); + interpreter.addSectionOrParagraphLine(); } sourceLine = tryInsertEndEvaluateAtMockedCompomentEnd(sourceLine); if(!interpreter.isInsideSectionOrParagraphMockBody()){ diff --git a/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java b/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java index 91c15e5e..d0cf55b1 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java @@ -357,13 +357,11 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " . " + Constants.NEWLINE + " " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *WhenOther block called " + Constants.NEWLINE + + " *WhenOther Paragraph or Section called " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " UT-1-0-0-WO SECTION. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *When other block of: SECTION: 000-START " + Constants.NEWLINE + - " *In testsuite: \"Mocking tests\" " + Constants.NEWLINE + - " *In testcase: " + Constants.NEWLINE + + " *WhenOther of: SECTION: 000-START " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " MOVE \"Value1\" to VALUE-1 " + Constants.NEWLINE + " EXIT SECTION " + Constants.NEWLINE + @@ -520,13 +518,11 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " . " + Constants.NEWLINE + " " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *WhenOther block called " + Constants.NEWLINE + + " *WhenOther Paragraph or Section called " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " UT-1-2-0-WO SECTION. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *When other block of: SECTION: 000-START " + Constants.NEWLINE + - " *In testsuite: \"Mocking tests\" " + Constants.NEWLINE + - " *In testcase: \"Simply a test\" " + Constants.NEWLINE + + " *WhenOther of: SECTION: 000-START " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " MOVE \"Value1\" to VALUE-1 " + Constants.NEWLINE + " EXIT SECTION. " + Constants.NEWLINE + @@ -547,13 +543,11 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " . " + Constants.NEWLINE + " " + Constants.NEWLINE+ " ***************************************************************** " + Constants.NEWLINE + - " *WhenOther block called " + Constants.NEWLINE + + " *WhenOther Paragraph or Section called " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " UT-1-2-1-WO SECTION. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *When other block of: SECTION: 100-WELCOME " + Constants.NEWLINE + - " *In testsuite: \"Mocking tests\" " + Constants.NEWLINE + - " *In testcase: \"Simply a test\" " + Constants.NEWLINE + + " *WhenOther of: SECTION: 100-WELCOME " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " MOVE \"Hello\" to VALUE-1. " + Constants.NEWLINE + " . " + Constants.NEWLINE + @@ -572,13 +566,11 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " . " + Constants.NEWLINE + " " + Constants.NEWLINE+ " ***************************************************************** " + Constants.NEWLINE + - " *WhenOther block called " + Constants.NEWLINE + + " *WhenOther Paragraph or Section called " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " UT-1-2-2-WO SECTION. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *When other block of: SECTION: 200-GOODBYE " + Constants.NEWLINE + - " *In testsuite: \"Mocking tests\" " + Constants.NEWLINE + - " *In testcase: \"Simply a test\" " + Constants.NEWLINE + + " *WhenOther of: SECTION: 200-GOODBYE " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " MOVE \"Bye\" to VALUE-1 " + Constants.NEWLINE + " . " + Constants.NEWLINE + @@ -798,13 +790,11 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " . " + Constants.NEWLINE + " " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *WhenOther block called " + Constants.NEWLINE + + " *WhenOther Paragraph or Section called " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " UT-1-2-0-WO SECTION. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *When other block of: SECTION: 000-START " + Constants.NEWLINE + - " *In testsuite: \"Mocking tests\" " + Constants.NEWLINE + - " *In testcase: \"Simply a test\" " + Constants.NEWLINE + + " *WhenOther of: SECTION: 000-START " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " MOVE \"Value1\" to VALUE-1 " + Constants.NEWLINE + " EXIT SECTION. " + Constants.NEWLINE + @@ -824,13 +814,11 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " . " + Constants.NEWLINE + " " + Constants.NEWLINE+ " ***************************************************************** " + Constants.NEWLINE + - " *WhenOther block called " + Constants.NEWLINE + + " *WhenOther Paragraph or Section called " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " UT-1-2-1-WO SECTION. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *When other block of: SECTION: 100-WELCOME " + Constants.NEWLINE + - " *In testsuite: \"Mocking tests\" " + Constants.NEWLINE + - " *In testcase: \"Simply a test\" " + Constants.NEWLINE + + " *WhenOther of: SECTION: 100-WELCOME " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " * CALL 'prog1' USING BY CONTENT VALUE-1, VALUE-2. " + Constants.NEWLINE + " EVALUATE UT-TEST-SUITE-NAME " + Constants.NEWLINE + @@ -860,13 +848,11 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " . " + Constants.NEWLINE + " " + Constants.NEWLINE+ " ***************************************************************** " + Constants.NEWLINE + - " *WhenOther block called " + Constants.NEWLINE + + " *WhenOther Paragraph or Section called " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " UT-1-2-2-WO SECTION. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *When other block of: SECTION: 200-GOODBYE " + Constants.NEWLINE + - " *In testsuite: \"Mocking tests\" " + Constants.NEWLINE + - " *In testcase: \"Simply a test\" " + Constants.NEWLINE + + " *WhenOther of: SECTION: 200-GOODBYE " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " MOVE \"Bye\" to VALUE-1 " + Constants.NEWLINE + " * CALL bogus USING VALUE-1 " + Constants.NEWLINE + From 98ff9d9864f758c1636f630ea6d92beb838fa810 Mon Sep 17 00:00:00 2001 From: issacto Date: Thu, 10 Aug 2023 15:07:24 +0100 Subject: [PATCH 117/180] refactor - third part Signed-off-by: issacto --- .../interpreter/InterpreterController.java | 26 ++++++------ .../{Block.java => SectionOrParagraph.java} | 4 +- .../testSuiteParser/TestSuiteParser.java | 5 +-- .../TestSuiteParserController.java | 4 +- .../features/testSuiteParser/WhenOther.java | 17 +------- .../testSuiteParser/WhenOtherGenerator.java | 2 +- .../cobolcheck/workers/Generator.java | 14 +++---- .../cobolcheck/MockIT.java | 42 +++++++------------ 8 files changed, 43 insertions(+), 71 deletions(-) rename src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/{Block.java => SectionOrParagraph.java} (84%) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java index 37055c4e..ab4db17b 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java @@ -27,7 +27,7 @@ public class InterpreterController { private boolean insideSectionOrParagraphMockBody; private TreeMap currentDataStructure; private final String stubTag; - private Block block; + private SectionOrParagraph sectionOrParagraph; public InterpreterController(BufferedReader sourceReader) { if (sourceReader == null) { @@ -40,7 +40,7 @@ public InterpreterController(BufferedReader sourceReader) { tokenExtractor = new StringTokenizerExtractor(); currentDataStructure = new TreeMap<>(); stubTag = Config.getStubTag(); - block = new Block(); + sectionOrParagraph = new SectionOrParagraph(); } //Getters for lists of specific source lines @@ -507,27 +507,27 @@ private void resetPossibleMockValues(){ possibleMockType = null; } - public List getBlockLines(){ - return block.getLines(); + public List getSectionOrParagraphLines(){ + return sectionOrParagraph.getLines(); } - public void removeBlockLines(){ - block.removeLines(); + public void removeSectionOrParagraphLines(){ + sectionOrParagraph.removeLines(); } - public void addBlockLine(){ + public void addSectionOrParagraphLine(){ if(Interpreter.shouldLineBeStubbed(reader.getCurrentLine(), reader.getState())) - block.addLine(StringHelper.stubLine(reader.getCurrentLine().getUnNumberedString(), stubTag)); - else block.addLine(reader.getCurrentLine().getUnNumberedString()); + sectionOrParagraph.addLine(StringHelper.stubLine(reader.getCurrentLine().getUnNumberedString(), stubTag)); + else sectionOrParagraph.addLine(reader.getCurrentLine().getUnNumberedString()); } - public void addBlockLine(String line){ - block.addLine(line); + public void addSectionOrParagraphLine(String line){ + sectionOrParagraph.addLine(line); } - public void addBlockLines(List lines){ + public void addSectionOrParagraphLines(List lines){ for (String line : lines){ - block.addLine(line); + sectionOrParagraph.addLine(line); } } diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/Block.java b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/SectionOrParagraph.java similarity index 84% rename from src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/Block.java rename to src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/SectionOrParagraph.java index 7a43207f..df74a952 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/Block.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/SectionOrParagraph.java @@ -3,11 +3,11 @@ import java.util.ArrayList; import java.util.List; -public class Block { +public class SectionOrParagraph { private List lines; - public Block(){ + public SectionOrParagraph(){ lines = new ArrayList<>(); } diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index 1006c435..278d8504 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -1161,10 +1161,9 @@ public String getCurrentFieldName() { return currentFieldName; } - public WhenOther getWhenOtherBlock(String type, List lines, String itdentifier, boolean withComments){ - WhenOther whenOther = new WhenOther(currentTestSuiteName ,currentTestCaseName, testSuiteNumber, testCaseNumber,whenOtherNumber); + public WhenOther getWhenOtherSectionOrParagraph(String type, List lines, String itdentifier, boolean withComments){ + WhenOther whenOther = new WhenOther(testSuiteNumber, testCaseNumber, whenOtherNumber); whenOther.addLines(lines); - whenOther.setScope(MockScope.Local); whenOther.setType(type); whenOther.setIdentifier(itdentifier); whenOtherNumber += 1; diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParserController.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParserController.java index aabe1568..60581522 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParserController.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParserController.java @@ -317,9 +317,9 @@ public void prepareNextParse() { Config.setDecimalPointIsCommaFromFile(); } - public List generateWhenOtherBlock(String type, List blocklines, String sourceLine, String identifier, boolean withComments) throws IOException{ + public List generateWhenOtherSectionOrParagraph(String type, List sectionOrParagraphlines, String sourceLine, String identifier, boolean withComments) throws IOException{ List lines = new ArrayList<>(); - WhenOther whenOther = testSuiteParser.getWhenOtherBlock(type, blocklines, identifier, true); + WhenOther whenOther = testSuiteParser.getWhenOtherSectionOrParagraph(type, sectionOrParagraphlines, identifier, true); lines.add(whenOtherGenerator.generateWhenOtherCall(whenOther)); lines.addAll(this.getEndEvaluateLine()); lines.add(sourceLine); diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/WhenOther.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/WhenOther.java index a27012e2..7cdd58f8 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/WhenOther.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/WhenOther.java @@ -12,17 +12,12 @@ public class WhenOther { private String identifier; private String type; private List lines; - private MockScope scope; - private String testSuiteName; - private String testCaseName; private int testSuiteNumber; private int testCaseNumber; private int mockNumber; - public WhenOther(String testSuiteName, String testCaseName, int testSuiteNumber, int testCaseNumber, int mockNumber) { - this.testSuiteName = testSuiteName; - this.testCaseName = testCaseName; + public WhenOther(int testSuiteNumber, int testCaseNumber, int mockNumber) { this.testSuiteNumber = testSuiteNumber; this.testCaseNumber = testCaseNumber; this.mockNumber = mockNumber; @@ -41,10 +36,6 @@ public void addLines(List lines) { this.lines.addAll(lines); } - public void setScope(MockScope scope) { - this.scope = scope; - } - public void setType(String type) { this.type = type; } @@ -65,11 +56,7 @@ public void setIdentifier(String identifier) { public List getCommentText(){ List newLines = new ArrayList<>(); newLines.add(" *****************************************************************"); - newLines.add( "When other block of: " + type + ": " + identifier); - newLines.add("In testsuite: " + testSuiteName); - if (scope == MockScope.Local){ - newLines.add("In testcase: " + testCaseName); - } + newLines.add( "WhenOther of: " + type + ": " + identifier); newLines.add(" *****************************************************************"); return newLines; diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/WhenOtherGenerator.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/WhenOtherGenerator.java index 9165eb16..f00a7736 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/WhenOtherGenerator.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/WhenOtherGenerator.java @@ -15,7 +15,7 @@ String generateWhenOtherCall(WhenOther whenOther) { List generateWhenOther(WhenOther whenOther, boolean withComments){ List lines = new ArrayList<>(); - lines.addAll(CobolGenerator.generateCommentBlock("WhenOther block called")); + lines.addAll(CobolGenerator.generateCommentBlock("WhenOther Paragraph or Section called")); lines.addAll(generateParagraphsForWhenOther(whenOther, withComments)); lines.add(""); return lines; diff --git a/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java b/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java index 1122b2d2..ae633ab1 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java @@ -143,8 +143,8 @@ private String tryInsertEndEvaluateAtMockedCompomentEnd(String sourceLine) throw if (interpreter.isInsideSectionOrParagraphMockBody()){ if (interpreter.isCurrentLineEndingSectionOrParagraph()){ if (interpreter.canWriteEndEvaluateBeforeCurrentLine()){ - writeWhenOtherBlock(sourceLine); - interpreter.removeBlockLines(); + writeWhenOtherSectionOrParagraph(sourceLine); + interpreter.removeSectionOrParagraphLines(); interpreter.setInsideSectionOrParagraphMockBody(false); return ""; } @@ -206,9 +206,9 @@ private void processingAfterEchoingSourceLineToOutput() throws IOException { List arguments = interpreter.getPossibleMockArgs(); if (testSuiteParserController.mockExistsFor(identifier, type, arguments)){ if(interpreter.isInsideSectionOrParagraphMockBody()){ - interpreter.addBlockLines(testSuiteParserController.generateMockPerformCalls(identifier, type, arguments)); + interpreter.addSectionOrParagraphLines(testSuiteParserController.generateMockPerformCalls(identifier, type, arguments)); if (type.equals(Constants.CALL_TOKEN)){ - interpreter.addBlockLine(" CONTINUE"); + interpreter.addSectionOrParagraphLine(" CONTINUE"); } }else writerController.writeLines(testSuiteParserController.generateMockPerformCalls(identifier, type, arguments)); if (type.equals(Constants.SECTION_TOKEN) || type.equals(Constants.PARAGRAPH_TOKEN)){ @@ -226,14 +226,14 @@ private void closeReadersAndWriters(String programName) { writerController.closeWriter(programName); } - private void writeWhenOtherBlock(String sourceLine) throws IOException{ - writerController.writeLines(testSuiteParserController.generateWhenOtherBlock(currentMockType, interpreter.getBlockLines(), sourceLine, currentIdentifier, true)); + private void writeWhenOtherSectionOrParagraph(String sourceLine) throws IOException{ + writerController.writeLines(testSuiteParserController.generateWhenOtherSectionOrParagraph(currentMockType, interpreter.getSectionOrParagraphLines(), sourceLine, currentIdentifier, true)); } private void echoingSourceLineToOutput(String sourceLine){ try{ if(interpreter.isInsideSectionOrParagraphMockBody()){ - interpreter.addBlockLine(); + interpreter.addSectionOrParagraphLine(); } sourceLine = tryInsertEndEvaluateAtMockedCompomentEnd(sourceLine); if(!interpreter.isInsideSectionOrParagraphMockBody()){ diff --git a/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java b/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java index 91c15e5e..d0cf55b1 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java @@ -357,13 +357,11 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " . " + Constants.NEWLINE + " " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *WhenOther block called " + Constants.NEWLINE + + " *WhenOther Paragraph or Section called " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " UT-1-0-0-WO SECTION. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *When other block of: SECTION: 000-START " + Constants.NEWLINE + - " *In testsuite: \"Mocking tests\" " + Constants.NEWLINE + - " *In testcase: " + Constants.NEWLINE + + " *WhenOther of: SECTION: 000-START " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " MOVE \"Value1\" to VALUE-1 " + Constants.NEWLINE + " EXIT SECTION " + Constants.NEWLINE + @@ -520,13 +518,11 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " . " + Constants.NEWLINE + " " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *WhenOther block called " + Constants.NEWLINE + + " *WhenOther Paragraph or Section called " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " UT-1-2-0-WO SECTION. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *When other block of: SECTION: 000-START " + Constants.NEWLINE + - " *In testsuite: \"Mocking tests\" " + Constants.NEWLINE + - " *In testcase: \"Simply a test\" " + Constants.NEWLINE + + " *WhenOther of: SECTION: 000-START " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " MOVE \"Value1\" to VALUE-1 " + Constants.NEWLINE + " EXIT SECTION. " + Constants.NEWLINE + @@ -547,13 +543,11 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " . " + Constants.NEWLINE + " " + Constants.NEWLINE+ " ***************************************************************** " + Constants.NEWLINE + - " *WhenOther block called " + Constants.NEWLINE + + " *WhenOther Paragraph or Section called " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " UT-1-2-1-WO SECTION. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *When other block of: SECTION: 100-WELCOME " + Constants.NEWLINE + - " *In testsuite: \"Mocking tests\" " + Constants.NEWLINE + - " *In testcase: \"Simply a test\" " + Constants.NEWLINE + + " *WhenOther of: SECTION: 100-WELCOME " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " MOVE \"Hello\" to VALUE-1. " + Constants.NEWLINE + " . " + Constants.NEWLINE + @@ -572,13 +566,11 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " . " + Constants.NEWLINE + " " + Constants.NEWLINE+ " ***************************************************************** " + Constants.NEWLINE + - " *WhenOther block called " + Constants.NEWLINE + + " *WhenOther Paragraph or Section called " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " UT-1-2-2-WO SECTION. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *When other block of: SECTION: 200-GOODBYE " + Constants.NEWLINE + - " *In testsuite: \"Mocking tests\" " + Constants.NEWLINE + - " *In testcase: \"Simply a test\" " + Constants.NEWLINE + + " *WhenOther of: SECTION: 200-GOODBYE " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " MOVE \"Bye\" to VALUE-1 " + Constants.NEWLINE + " . " + Constants.NEWLINE + @@ -798,13 +790,11 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " . " + Constants.NEWLINE + " " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *WhenOther block called " + Constants.NEWLINE + + " *WhenOther Paragraph or Section called " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " UT-1-2-0-WO SECTION. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *When other block of: SECTION: 000-START " + Constants.NEWLINE + - " *In testsuite: \"Mocking tests\" " + Constants.NEWLINE + - " *In testcase: \"Simply a test\" " + Constants.NEWLINE + + " *WhenOther of: SECTION: 000-START " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " MOVE \"Value1\" to VALUE-1 " + Constants.NEWLINE + " EXIT SECTION. " + Constants.NEWLINE + @@ -824,13 +814,11 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " . " + Constants.NEWLINE + " " + Constants.NEWLINE+ " ***************************************************************** " + Constants.NEWLINE + - " *WhenOther block called " + Constants.NEWLINE + + " *WhenOther Paragraph or Section called " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " UT-1-2-1-WO SECTION. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *When other block of: SECTION: 100-WELCOME " + Constants.NEWLINE + - " *In testsuite: \"Mocking tests\" " + Constants.NEWLINE + - " *In testcase: \"Simply a test\" " + Constants.NEWLINE + + " *WhenOther of: SECTION: 100-WELCOME " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " * CALL 'prog1' USING BY CONTENT VALUE-1, VALUE-2. " + Constants.NEWLINE + " EVALUATE UT-TEST-SUITE-NAME " + Constants.NEWLINE + @@ -860,13 +848,11 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " . " + Constants.NEWLINE + " " + Constants.NEWLINE+ " ***************************************************************** " + Constants.NEWLINE + - " *WhenOther block called " + Constants.NEWLINE + + " *WhenOther Paragraph or Section called " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " UT-1-2-2-WO SECTION. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *When other block of: SECTION: 200-GOODBYE " + Constants.NEWLINE + - " *In testsuite: \"Mocking tests\" " + Constants.NEWLINE + - " *In testcase: \"Simply a test\" " + Constants.NEWLINE + + " *WhenOther of: SECTION: 200-GOODBYE " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " MOVE \"Bye\" to VALUE-1 " + Constants.NEWLINE + " * CALL bogus USING VALUE-1 " + Constants.NEWLINE + From 25458ac5605700b22855cb67b1c9ad4c31d72f3b Mon Sep 17 00:00:00 2001 From: issacto Date: Thu, 10 Aug 2023 15:44:58 +0100 Subject: [PATCH 118/180] refactor third part Signed-off-by: issacto --- .../interpreter/InterpreterController.java | 26 ++++++------ .../{Block.java => SectionOrParagraph.java} | 4 +- .../testSuiteParser/TestSuiteParser.java | 5 +-- .../TestSuiteParserController.java | 4 +- .../features/testSuiteParser/WhenOther.java | 17 +------- .../testSuiteParser/WhenOtherGenerator.java | 2 +- .../cobolcheck/workers/Generator.java | 14 +++---- .../cobolcheck/MockIT.java | 42 +++++++------------ 8 files changed, 43 insertions(+), 71 deletions(-) rename src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/{Block.java => SectionOrParagraph.java} (84%) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java index 37055c4e..ab4db17b 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java @@ -27,7 +27,7 @@ public class InterpreterController { private boolean insideSectionOrParagraphMockBody; private TreeMap currentDataStructure; private final String stubTag; - private Block block; + private SectionOrParagraph sectionOrParagraph; public InterpreterController(BufferedReader sourceReader) { if (sourceReader == null) { @@ -40,7 +40,7 @@ public InterpreterController(BufferedReader sourceReader) { tokenExtractor = new StringTokenizerExtractor(); currentDataStructure = new TreeMap<>(); stubTag = Config.getStubTag(); - block = new Block(); + sectionOrParagraph = new SectionOrParagraph(); } //Getters for lists of specific source lines @@ -507,27 +507,27 @@ private void resetPossibleMockValues(){ possibleMockType = null; } - public List getBlockLines(){ - return block.getLines(); + public List getSectionOrParagraphLines(){ + return sectionOrParagraph.getLines(); } - public void removeBlockLines(){ - block.removeLines(); + public void removeSectionOrParagraphLines(){ + sectionOrParagraph.removeLines(); } - public void addBlockLine(){ + public void addSectionOrParagraphLine(){ if(Interpreter.shouldLineBeStubbed(reader.getCurrentLine(), reader.getState())) - block.addLine(StringHelper.stubLine(reader.getCurrentLine().getUnNumberedString(), stubTag)); - else block.addLine(reader.getCurrentLine().getUnNumberedString()); + sectionOrParagraph.addLine(StringHelper.stubLine(reader.getCurrentLine().getUnNumberedString(), stubTag)); + else sectionOrParagraph.addLine(reader.getCurrentLine().getUnNumberedString()); } - public void addBlockLine(String line){ - block.addLine(line); + public void addSectionOrParagraphLine(String line){ + sectionOrParagraph.addLine(line); } - public void addBlockLines(List lines){ + public void addSectionOrParagraphLines(List lines){ for (String line : lines){ - block.addLine(line); + sectionOrParagraph.addLine(line); } } diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/Block.java b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/SectionOrParagraph.java similarity index 84% rename from src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/Block.java rename to src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/SectionOrParagraph.java index 7a43207f..df74a952 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/Block.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/SectionOrParagraph.java @@ -3,11 +3,11 @@ import java.util.ArrayList; import java.util.List; -public class Block { +public class SectionOrParagraph { private List lines; - public Block(){ + public SectionOrParagraph(){ lines = new ArrayList<>(); } diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index 1006c435..278d8504 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -1161,10 +1161,9 @@ public String getCurrentFieldName() { return currentFieldName; } - public WhenOther getWhenOtherBlock(String type, List lines, String itdentifier, boolean withComments){ - WhenOther whenOther = new WhenOther(currentTestSuiteName ,currentTestCaseName, testSuiteNumber, testCaseNumber,whenOtherNumber); + public WhenOther getWhenOtherSectionOrParagraph(String type, List lines, String itdentifier, boolean withComments){ + WhenOther whenOther = new WhenOther(testSuiteNumber, testCaseNumber, whenOtherNumber); whenOther.addLines(lines); - whenOther.setScope(MockScope.Local); whenOther.setType(type); whenOther.setIdentifier(itdentifier); whenOtherNumber += 1; diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParserController.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParserController.java index aabe1568..60581522 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParserController.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParserController.java @@ -317,9 +317,9 @@ public void prepareNextParse() { Config.setDecimalPointIsCommaFromFile(); } - public List generateWhenOtherBlock(String type, List blocklines, String sourceLine, String identifier, boolean withComments) throws IOException{ + public List generateWhenOtherSectionOrParagraph(String type, List sectionOrParagraphlines, String sourceLine, String identifier, boolean withComments) throws IOException{ List lines = new ArrayList<>(); - WhenOther whenOther = testSuiteParser.getWhenOtherBlock(type, blocklines, identifier, true); + WhenOther whenOther = testSuiteParser.getWhenOtherSectionOrParagraph(type, sectionOrParagraphlines, identifier, true); lines.add(whenOtherGenerator.generateWhenOtherCall(whenOther)); lines.addAll(this.getEndEvaluateLine()); lines.add(sourceLine); diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/WhenOther.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/WhenOther.java index a27012e2..7cdd58f8 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/WhenOther.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/WhenOther.java @@ -12,17 +12,12 @@ public class WhenOther { private String identifier; private String type; private List lines; - private MockScope scope; - private String testSuiteName; - private String testCaseName; private int testSuiteNumber; private int testCaseNumber; private int mockNumber; - public WhenOther(String testSuiteName, String testCaseName, int testSuiteNumber, int testCaseNumber, int mockNumber) { - this.testSuiteName = testSuiteName; - this.testCaseName = testCaseName; + public WhenOther(int testSuiteNumber, int testCaseNumber, int mockNumber) { this.testSuiteNumber = testSuiteNumber; this.testCaseNumber = testCaseNumber; this.mockNumber = mockNumber; @@ -41,10 +36,6 @@ public void addLines(List lines) { this.lines.addAll(lines); } - public void setScope(MockScope scope) { - this.scope = scope; - } - public void setType(String type) { this.type = type; } @@ -65,11 +56,7 @@ public void setIdentifier(String identifier) { public List getCommentText(){ List newLines = new ArrayList<>(); newLines.add(" *****************************************************************"); - newLines.add( "When other block of: " + type + ": " + identifier); - newLines.add("In testsuite: " + testSuiteName); - if (scope == MockScope.Local){ - newLines.add("In testcase: " + testCaseName); - } + newLines.add( "WhenOther of: " + type + ": " + identifier); newLines.add(" *****************************************************************"); return newLines; diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/WhenOtherGenerator.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/WhenOtherGenerator.java index 9165eb16..f00a7736 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/WhenOtherGenerator.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/WhenOtherGenerator.java @@ -15,7 +15,7 @@ String generateWhenOtherCall(WhenOther whenOther) { List generateWhenOther(WhenOther whenOther, boolean withComments){ List lines = new ArrayList<>(); - lines.addAll(CobolGenerator.generateCommentBlock("WhenOther block called")); + lines.addAll(CobolGenerator.generateCommentBlock("WhenOther Paragraph or Section called")); lines.addAll(generateParagraphsForWhenOther(whenOther, withComments)); lines.add(""); return lines; diff --git a/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java b/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java index 1122b2d2..ae633ab1 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java @@ -143,8 +143,8 @@ private String tryInsertEndEvaluateAtMockedCompomentEnd(String sourceLine) throw if (interpreter.isInsideSectionOrParagraphMockBody()){ if (interpreter.isCurrentLineEndingSectionOrParagraph()){ if (interpreter.canWriteEndEvaluateBeforeCurrentLine()){ - writeWhenOtherBlock(sourceLine); - interpreter.removeBlockLines(); + writeWhenOtherSectionOrParagraph(sourceLine); + interpreter.removeSectionOrParagraphLines(); interpreter.setInsideSectionOrParagraphMockBody(false); return ""; } @@ -206,9 +206,9 @@ private void processingAfterEchoingSourceLineToOutput() throws IOException { List arguments = interpreter.getPossibleMockArgs(); if (testSuiteParserController.mockExistsFor(identifier, type, arguments)){ if(interpreter.isInsideSectionOrParagraphMockBody()){ - interpreter.addBlockLines(testSuiteParserController.generateMockPerformCalls(identifier, type, arguments)); + interpreter.addSectionOrParagraphLines(testSuiteParserController.generateMockPerformCalls(identifier, type, arguments)); if (type.equals(Constants.CALL_TOKEN)){ - interpreter.addBlockLine(" CONTINUE"); + interpreter.addSectionOrParagraphLine(" CONTINUE"); } }else writerController.writeLines(testSuiteParserController.generateMockPerformCalls(identifier, type, arguments)); if (type.equals(Constants.SECTION_TOKEN) || type.equals(Constants.PARAGRAPH_TOKEN)){ @@ -226,14 +226,14 @@ private void closeReadersAndWriters(String programName) { writerController.closeWriter(programName); } - private void writeWhenOtherBlock(String sourceLine) throws IOException{ - writerController.writeLines(testSuiteParserController.generateWhenOtherBlock(currentMockType, interpreter.getBlockLines(), sourceLine, currentIdentifier, true)); + private void writeWhenOtherSectionOrParagraph(String sourceLine) throws IOException{ + writerController.writeLines(testSuiteParserController.generateWhenOtherSectionOrParagraph(currentMockType, interpreter.getSectionOrParagraphLines(), sourceLine, currentIdentifier, true)); } private void echoingSourceLineToOutput(String sourceLine){ try{ if(interpreter.isInsideSectionOrParagraphMockBody()){ - interpreter.addBlockLine(); + interpreter.addSectionOrParagraphLine(); } sourceLine = tryInsertEndEvaluateAtMockedCompomentEnd(sourceLine); if(!interpreter.isInsideSectionOrParagraphMockBody()){ diff --git a/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java b/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java index 91c15e5e..d0cf55b1 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java @@ -357,13 +357,11 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " . " + Constants.NEWLINE + " " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *WhenOther block called " + Constants.NEWLINE + + " *WhenOther Paragraph or Section called " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " UT-1-0-0-WO SECTION. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *When other block of: SECTION: 000-START " + Constants.NEWLINE + - " *In testsuite: \"Mocking tests\" " + Constants.NEWLINE + - " *In testcase: " + Constants.NEWLINE + + " *WhenOther of: SECTION: 000-START " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " MOVE \"Value1\" to VALUE-1 " + Constants.NEWLINE + " EXIT SECTION " + Constants.NEWLINE + @@ -520,13 +518,11 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " . " + Constants.NEWLINE + " " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *WhenOther block called " + Constants.NEWLINE + + " *WhenOther Paragraph or Section called " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " UT-1-2-0-WO SECTION. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *When other block of: SECTION: 000-START " + Constants.NEWLINE + - " *In testsuite: \"Mocking tests\" " + Constants.NEWLINE + - " *In testcase: \"Simply a test\" " + Constants.NEWLINE + + " *WhenOther of: SECTION: 000-START " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " MOVE \"Value1\" to VALUE-1 " + Constants.NEWLINE + " EXIT SECTION. " + Constants.NEWLINE + @@ -547,13 +543,11 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " . " + Constants.NEWLINE + " " + Constants.NEWLINE+ " ***************************************************************** " + Constants.NEWLINE + - " *WhenOther block called " + Constants.NEWLINE + + " *WhenOther Paragraph or Section called " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " UT-1-2-1-WO SECTION. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *When other block of: SECTION: 100-WELCOME " + Constants.NEWLINE + - " *In testsuite: \"Mocking tests\" " + Constants.NEWLINE + - " *In testcase: \"Simply a test\" " + Constants.NEWLINE + + " *WhenOther of: SECTION: 100-WELCOME " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " MOVE \"Hello\" to VALUE-1. " + Constants.NEWLINE + " . " + Constants.NEWLINE + @@ -572,13 +566,11 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " . " + Constants.NEWLINE + " " + Constants.NEWLINE+ " ***************************************************************** " + Constants.NEWLINE + - " *WhenOther block called " + Constants.NEWLINE + + " *WhenOther Paragraph or Section called " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " UT-1-2-2-WO SECTION. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *When other block of: SECTION: 200-GOODBYE " + Constants.NEWLINE + - " *In testsuite: \"Mocking tests\" " + Constants.NEWLINE + - " *In testcase: \"Simply a test\" " + Constants.NEWLINE + + " *WhenOther of: SECTION: 200-GOODBYE " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " MOVE \"Bye\" to VALUE-1 " + Constants.NEWLINE + " . " + Constants.NEWLINE + @@ -798,13 +790,11 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " . " + Constants.NEWLINE + " " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *WhenOther block called " + Constants.NEWLINE + + " *WhenOther Paragraph or Section called " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " UT-1-2-0-WO SECTION. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *When other block of: SECTION: 000-START " + Constants.NEWLINE + - " *In testsuite: \"Mocking tests\" " + Constants.NEWLINE + - " *In testcase: \"Simply a test\" " + Constants.NEWLINE + + " *WhenOther of: SECTION: 000-START " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " MOVE \"Value1\" to VALUE-1 " + Constants.NEWLINE + " EXIT SECTION. " + Constants.NEWLINE + @@ -824,13 +814,11 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " . " + Constants.NEWLINE + " " + Constants.NEWLINE+ " ***************************************************************** " + Constants.NEWLINE + - " *WhenOther block called " + Constants.NEWLINE + + " *WhenOther Paragraph or Section called " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " UT-1-2-1-WO SECTION. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *When other block of: SECTION: 100-WELCOME " + Constants.NEWLINE + - " *In testsuite: \"Mocking tests\" " + Constants.NEWLINE + - " *In testcase: \"Simply a test\" " + Constants.NEWLINE + + " *WhenOther of: SECTION: 100-WELCOME " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " * CALL 'prog1' USING BY CONTENT VALUE-1, VALUE-2. " + Constants.NEWLINE + " EVALUATE UT-TEST-SUITE-NAME " + Constants.NEWLINE + @@ -860,13 +848,11 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " . " + Constants.NEWLINE + " " + Constants.NEWLINE+ " ***************************************************************** " + Constants.NEWLINE + - " *WhenOther block called " + Constants.NEWLINE + + " *WhenOther Paragraph or Section called " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " UT-1-2-2-WO SECTION. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *When other block of: SECTION: 200-GOODBYE " + Constants.NEWLINE + - " *In testsuite: \"Mocking tests\" " + Constants.NEWLINE + - " *In testcase: \"Simply a test\" " + Constants.NEWLINE + + " *WhenOther of: SECTION: 200-GOODBYE " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " MOVE \"Bye\" to VALUE-1 " + Constants.NEWLINE + " * CALL bogus USING VALUE-1 " + Constants.NEWLINE + From c546531207cfedbc2c50784f8261ff54247091a3 Mon Sep 17 00:00:00 2001 From: issacto Date: Thu, 10 Aug 2023 15:52:50 +0100 Subject: [PATCH 119/180] refactor Signed-off-by: issacto --- .../interpreter/InterpreterController.java | 26 +++---- .../{Block.java => SectionOrParagraph.java} | 4 +- .../testSuiteParser/TestSuiteParser.java | 5 +- .../TestSuiteParserController.java | 5 +- .../features/testSuiteParser/WhenOther.java | 17 +---- .../testSuiteParser/WhenOtherGenerator.java | 4 +- .../cobolcheck/workers/Generator.java | 14 ++-- .../cobolcheck/MockIT.java | 71 ++++++++----------- 8 files changed, 60 insertions(+), 86 deletions(-) rename src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/{Block.java => SectionOrParagraph.java} (84%) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java index 37055c4e..ab4db17b 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/InterpreterController.java @@ -27,7 +27,7 @@ public class InterpreterController { private boolean insideSectionOrParagraphMockBody; private TreeMap currentDataStructure; private final String stubTag; - private Block block; + private SectionOrParagraph sectionOrParagraph; public InterpreterController(BufferedReader sourceReader) { if (sourceReader == null) { @@ -40,7 +40,7 @@ public InterpreterController(BufferedReader sourceReader) { tokenExtractor = new StringTokenizerExtractor(); currentDataStructure = new TreeMap<>(); stubTag = Config.getStubTag(); - block = new Block(); + sectionOrParagraph = new SectionOrParagraph(); } //Getters for lists of specific source lines @@ -507,27 +507,27 @@ private void resetPossibleMockValues(){ possibleMockType = null; } - public List getBlockLines(){ - return block.getLines(); + public List getSectionOrParagraphLines(){ + return sectionOrParagraph.getLines(); } - public void removeBlockLines(){ - block.removeLines(); + public void removeSectionOrParagraphLines(){ + sectionOrParagraph.removeLines(); } - public void addBlockLine(){ + public void addSectionOrParagraphLine(){ if(Interpreter.shouldLineBeStubbed(reader.getCurrentLine(), reader.getState())) - block.addLine(StringHelper.stubLine(reader.getCurrentLine().getUnNumberedString(), stubTag)); - else block.addLine(reader.getCurrentLine().getUnNumberedString()); + sectionOrParagraph.addLine(StringHelper.stubLine(reader.getCurrentLine().getUnNumberedString(), stubTag)); + else sectionOrParagraph.addLine(reader.getCurrentLine().getUnNumberedString()); } - public void addBlockLine(String line){ - block.addLine(line); + public void addSectionOrParagraphLine(String line){ + sectionOrParagraph.addLine(line); } - public void addBlockLines(List lines){ + public void addSectionOrParagraphLines(List lines){ for (String line : lines){ - block.addLine(line); + sectionOrParagraph.addLine(line); } } diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/Block.java b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/SectionOrParagraph.java similarity index 84% rename from src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/Block.java rename to src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/SectionOrParagraph.java index 7a43207f..df74a952 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/Block.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/interpreter/SectionOrParagraph.java @@ -3,11 +3,11 @@ import java.util.ArrayList; import java.util.List; -public class Block { +public class SectionOrParagraph { private List lines; - public Block(){ + public SectionOrParagraph(){ lines = new ArrayList<>(); } diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index 1006c435..278d8504 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -1161,10 +1161,9 @@ public String getCurrentFieldName() { return currentFieldName; } - public WhenOther getWhenOtherBlock(String type, List lines, String itdentifier, boolean withComments){ - WhenOther whenOther = new WhenOther(currentTestSuiteName ,currentTestCaseName, testSuiteNumber, testCaseNumber,whenOtherNumber); + public WhenOther getWhenOtherSectionOrParagraph(String type, List lines, String itdentifier, boolean withComments){ + WhenOther whenOther = new WhenOther(testSuiteNumber, testCaseNumber, whenOtherNumber); whenOther.addLines(lines); - whenOther.setScope(MockScope.Local); whenOther.setType(type); whenOther.setIdentifier(itdentifier); whenOtherNumber += 1; diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParserController.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParserController.java index 32b6be9f..60581522 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParserController.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParserController.java @@ -67,6 +67,7 @@ public TestSuiteParserController(BufferedReader reader) { testSuiteParser = new TestSuiteParser(new KeywordExtractor(), mockRepository, beforeAfterRepo, testSuiteErrorLog); mockGenerator = new MockGenerator(); testCodePrefix = Config.getString(Constants.COBOLCHECK_PREFIX_CONFIG_KEY, Constants.DEFAULT_COBOLCHECK_PREFIX); + whenOtherGenerator = new WhenOtherGenerator(); } public boolean hasWorkingStorageTestCodeBeenInserted() { @@ -316,9 +317,9 @@ public void prepareNextParse() { Config.setDecimalPointIsCommaFromFile(); } - public List generateWhenOtherBlock(String type, List blocklines, String sourceLine, String identifier, boolean withComments) throws IOException{ + public List generateWhenOtherSectionOrParagraph(String type, List sectionOrParagraphlines, String sourceLine, String identifier, boolean withComments) throws IOException{ List lines = new ArrayList<>(); - WhenOther whenOther = testSuiteParser.getWhenOtherBlock(type, blocklines, identifier, true); + WhenOther whenOther = testSuiteParser.getWhenOtherSectionOrParagraph(type, sectionOrParagraphlines, identifier, true); lines.add(whenOtherGenerator.generateWhenOtherCall(whenOther)); lines.addAll(this.getEndEvaluateLine()); lines.add(sourceLine); diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/WhenOther.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/WhenOther.java index a27012e2..7cdd58f8 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/WhenOther.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/WhenOther.java @@ -12,17 +12,12 @@ public class WhenOther { private String identifier; private String type; private List lines; - private MockScope scope; - private String testSuiteName; - private String testCaseName; private int testSuiteNumber; private int testCaseNumber; private int mockNumber; - public WhenOther(String testSuiteName, String testCaseName, int testSuiteNumber, int testCaseNumber, int mockNumber) { - this.testSuiteName = testSuiteName; - this.testCaseName = testCaseName; + public WhenOther(int testSuiteNumber, int testCaseNumber, int mockNumber) { this.testSuiteNumber = testSuiteNumber; this.testCaseNumber = testCaseNumber; this.mockNumber = mockNumber; @@ -41,10 +36,6 @@ public void addLines(List lines) { this.lines.addAll(lines); } - public void setScope(MockScope scope) { - this.scope = scope; - } - public void setType(String type) { this.type = type; } @@ -65,11 +56,7 @@ public void setIdentifier(String identifier) { public List getCommentText(){ List newLines = new ArrayList<>(); newLines.add(" *****************************************************************"); - newLines.add( "When other block of: " + type + ": " + identifier); - newLines.add("In testsuite: " + testSuiteName); - if (scope == MockScope.Local){ - newLines.add("In testcase: " + testCaseName); - } + newLines.add( "WhenOther of: " + type + ": " + identifier); newLines.add(" *****************************************************************"); return newLines; diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/WhenOtherGenerator.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/WhenOtherGenerator.java index 60b5bdf6..f00a7736 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/WhenOtherGenerator.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/WhenOtherGenerator.java @@ -9,13 +9,13 @@ public class WhenOtherGenerator { private final String performFormat = " PERFORM %s"; - public String generateWhenOtherCall(WhenOther whenOther) { + String generateWhenOtherCall(WhenOther whenOther) { return String.format(performFormat, whenOther.getGeneratedWhenOtherIdentifier()); } List generateWhenOther(WhenOther whenOther, boolean withComments){ List lines = new ArrayList<>(); - lines.addAll(CobolGenerator.generateCommentBlock("WhenOther block called when mocking")); + lines.addAll(CobolGenerator.generateCommentBlock("WhenOther Paragraph or Section called")); lines.addAll(generateParagraphsForWhenOther(whenOther, withComments)); lines.add(""); return lines; diff --git a/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java b/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java index 1122b2d2..ae633ab1 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/workers/Generator.java @@ -143,8 +143,8 @@ private String tryInsertEndEvaluateAtMockedCompomentEnd(String sourceLine) throw if (interpreter.isInsideSectionOrParagraphMockBody()){ if (interpreter.isCurrentLineEndingSectionOrParagraph()){ if (interpreter.canWriteEndEvaluateBeforeCurrentLine()){ - writeWhenOtherBlock(sourceLine); - interpreter.removeBlockLines(); + writeWhenOtherSectionOrParagraph(sourceLine); + interpreter.removeSectionOrParagraphLines(); interpreter.setInsideSectionOrParagraphMockBody(false); return ""; } @@ -206,9 +206,9 @@ private void processingAfterEchoingSourceLineToOutput() throws IOException { List arguments = interpreter.getPossibleMockArgs(); if (testSuiteParserController.mockExistsFor(identifier, type, arguments)){ if(interpreter.isInsideSectionOrParagraphMockBody()){ - interpreter.addBlockLines(testSuiteParserController.generateMockPerformCalls(identifier, type, arguments)); + interpreter.addSectionOrParagraphLines(testSuiteParserController.generateMockPerformCalls(identifier, type, arguments)); if (type.equals(Constants.CALL_TOKEN)){ - interpreter.addBlockLine(" CONTINUE"); + interpreter.addSectionOrParagraphLine(" CONTINUE"); } }else writerController.writeLines(testSuiteParserController.generateMockPerformCalls(identifier, type, arguments)); if (type.equals(Constants.SECTION_TOKEN) || type.equals(Constants.PARAGRAPH_TOKEN)){ @@ -226,14 +226,14 @@ private void closeReadersAndWriters(String programName) { writerController.closeWriter(programName); } - private void writeWhenOtherBlock(String sourceLine) throws IOException{ - writerController.writeLines(testSuiteParserController.generateWhenOtherBlock(currentMockType, interpreter.getBlockLines(), sourceLine, currentIdentifier, true)); + private void writeWhenOtherSectionOrParagraph(String sourceLine) throws IOException{ + writerController.writeLines(testSuiteParserController.generateWhenOtherSectionOrParagraph(currentMockType, interpreter.getSectionOrParagraphLines(), sourceLine, currentIdentifier, true)); } private void echoingSourceLineToOutput(String sourceLine){ try{ if(interpreter.isInsideSectionOrParagraphMockBody()){ - interpreter.addBlockLine(); + interpreter.addSectionOrParagraphLine(); } sourceLine = tryInsertEndEvaluateAtMockedCompomentEnd(sourceLine); if(!interpreter.isInsideSectionOrParagraphMockBody()){ diff --git a/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java b/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java index 152d0b5b..d0cf55b1 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/MockIT.java @@ -77,6 +77,7 @@ public void it_inserts_a_mock_correctly() throws IOException { Mockito.when(mockedInterpreterReader.readLine()).thenReturn(s1, s2, s3, s4, s5, s6, null); Mockito.when(mockedParserReader.readLine()).thenReturn(t1, t2, t3, t4, null); + generator = new Generator(interpreterController, writerController, testSuiteParserController); @@ -351,18 +352,16 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " ALSO ANY " + Constants.NEWLINE + " PERFORM UT-1-0-1-MOCK " + Constants.NEWLINE + " WHEN OTHER " + Constants.NEWLINE + - " PERFORM UT-1-0-2-MOCK " + Constants.NEWLINE + + " PERFORM UT-1-0-0-WO " + Constants.NEWLINE + " END-EVALUATE " + Constants.NEWLINE + " . " + Constants.NEWLINE + " " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *Paragraphs called when mocking " + Constants.NEWLINE + + " *WhenOther Paragraph or Section called " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " UT-1-0-2-MOCK SECTION. " + Constants.NEWLINE + + " UT-1-0-0-WO SECTION. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *Local mock of: SECTION: 000-START " + Constants.NEWLINE + - " *In testsuite: \"Mocking tests\" " + Constants.NEWLINE + - " *In testcase: " + Constants.NEWLINE + + " *WhenOther of: SECTION: 000-START " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " MOVE \"Value1\" to VALUE-1 " + Constants.NEWLINE + " EXIT SECTION " + Constants.NEWLINE + @@ -514,18 +513,16 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " ALSO ANY " + Constants.NEWLINE + " PERFORM UT-1-0-1-MOCK " + Constants.NEWLINE + " WHEN OTHER " + Constants.NEWLINE + - " PERFORM UT-1-2-4-MOCK " + Constants.NEWLINE + + " PERFORM UT-1-2-0-WO " + Constants.NEWLINE + " END-EVALUATE " + Constants.NEWLINE + " . " + Constants.NEWLINE + " " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *Paragraphs called when mocking " + Constants.NEWLINE + + " *WhenOther Paragraph or Section called " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " UT-1-2-4-MOCK SECTION. " + Constants.NEWLINE + + " UT-1-2-0-WO SECTION. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *Local mock of: SECTION: 000-START " + Constants.NEWLINE + - " *In testsuite: \"Mocking tests\" " + Constants.NEWLINE + - " *In testcase: \"Simply a test\" " + Constants.NEWLINE + + " *WhenOther of: SECTION: 000-START " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " MOVE \"Value1\" to VALUE-1 " + Constants.NEWLINE + " EXIT SECTION. " + Constants.NEWLINE + @@ -541,18 +538,16 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " ALSO \"Simply a test\" " + Constants.NEWLINE + " PERFORM UT-1-2-2-MOCK " + Constants.NEWLINE + " WHEN OTHER " + Constants.NEWLINE + - " PERFORM UT-1-2-5-MOCK " + Constants.NEWLINE + + " PERFORM UT-1-2-1-WO " + Constants.NEWLINE + " END-EVALUATE " + Constants.NEWLINE + " . " + Constants.NEWLINE + " " + Constants.NEWLINE+ " ***************************************************************** " + Constants.NEWLINE + - " *Paragraphs called when mocking " + Constants.NEWLINE + + " *WhenOther Paragraph or Section called " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " UT-1-2-5-MOCK SECTION. " + Constants.NEWLINE + + " UT-1-2-1-WO SECTION. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *Local mock of: SECTION: 100-WELCOME " + Constants.NEWLINE + - " *In testsuite: \"Mocking tests\" " + Constants.NEWLINE + - " *In testcase: \"Simply a test\" " + Constants.NEWLINE + + " *WhenOther of: SECTION: 100-WELCOME " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " MOVE \"Hello\" to VALUE-1. " + Constants.NEWLINE + " . " + Constants.NEWLINE + @@ -566,18 +561,16 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " ALSO \"Simply a test\" " + Constants.NEWLINE + " PERFORM UT-1-2-3-MOCK " + Constants.NEWLINE + " WHEN OTHER " + Constants.NEWLINE + - " PERFORM UT-1-2-6-MOCK " + Constants.NEWLINE + + " PERFORM UT-1-2-2-WO " + Constants.NEWLINE + " END-EVALUATE " + Constants.NEWLINE + " . " + Constants.NEWLINE + " " + Constants.NEWLINE+ " ***************************************************************** " + Constants.NEWLINE + - " *Paragraphs called when mocking " + Constants.NEWLINE + + " *WhenOther Paragraph or Section called " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " UT-1-2-6-MOCK SECTION. " + Constants.NEWLINE + + " UT-1-2-2-WO SECTION. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *Local mock of: SECTION: 200-GOODBYE " + Constants.NEWLINE + - " *In testsuite: \"Mocking tests\" " + Constants.NEWLINE + - " *In testcase: \"Simply a test\" " + Constants.NEWLINE + + " *WhenOther of: SECTION: 200-GOODBYE " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " MOVE \"Bye\" to VALUE-1 " + Constants.NEWLINE + " . " + Constants.NEWLINE + @@ -792,18 +785,16 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " ALSO \"Simply a test\" " + Constants.NEWLINE + " PERFORM UT-1-2-1-MOCK " + Constants.NEWLINE + " WHEN OTHER " + Constants.NEWLINE + - " PERFORM UT-1-2-4-MOCK " + Constants.NEWLINE + + " PERFORM UT-1-2-0-WO " + Constants.NEWLINE + " END-EVALUATE " + Constants.NEWLINE + " . " + Constants.NEWLINE + " " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *Paragraphs called when mocking " + Constants.NEWLINE + + " *WhenOther Paragraph or Section called " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " UT-1-2-4-MOCK SECTION. " + Constants.NEWLINE + + " UT-1-2-0-WO SECTION. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *Local mock of: SECTION: 000-START " + Constants.NEWLINE + - " *In testsuite: \"Mocking tests\" " + Constants.NEWLINE + - " *In testcase: \"Simply a test\" " + Constants.NEWLINE + + " *WhenOther of: SECTION: 000-START " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " MOVE \"Value1\" to VALUE-1 " + Constants.NEWLINE + " EXIT SECTION. " + Constants.NEWLINE + @@ -818,18 +809,16 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " ALSO ANY " + Constants.NEWLINE + " PERFORM UT-1-0-1-MOCK " + Constants.NEWLINE + " WHEN OTHER " + Constants.NEWLINE + - " PERFORM UT-1-2-5-MOCK " + Constants.NEWLINE + + " PERFORM UT-1-2-1-WO " + Constants.NEWLINE + " END-EVALUATE " + Constants.NEWLINE + " . " + Constants.NEWLINE + " " + Constants.NEWLINE+ " ***************************************************************** " + Constants.NEWLINE + - " *Paragraphs called when mocking " + Constants.NEWLINE + + " *WhenOther Paragraph or Section called " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " UT-1-2-5-MOCK SECTION. " + Constants.NEWLINE + + " UT-1-2-1-WO SECTION. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *Local mock of: SECTION: 100-WELCOME " + Constants.NEWLINE + - " *In testsuite: \"Mocking tests\" " + Constants.NEWLINE + - " *In testcase: \"Simply a test\" " + Constants.NEWLINE + + " *WhenOther of: SECTION: 100-WELCOME " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " * CALL 'prog1' USING BY CONTENT VALUE-1, VALUE-2. " + Constants.NEWLINE + " EVALUATE UT-TEST-SUITE-NAME " + Constants.NEWLINE + @@ -854,18 +843,16 @@ private String removeBoilerPlateCode(String code, List boilerPlateTags){ " ALSO \"Simply a test\" " + Constants.NEWLINE + " PERFORM UT-1-2-3-MOCK " + Constants.NEWLINE + " WHEN OTHER " + Constants.NEWLINE + - " PERFORM UT-1-2-6-MOCK " + Constants.NEWLINE + + " PERFORM UT-1-2-2-WO " + Constants.NEWLINE + " END-EVALUATE " + Constants.NEWLINE + " . " + Constants.NEWLINE + " " + Constants.NEWLINE+ " ***************************************************************** " + Constants.NEWLINE + - " *Paragraphs called when mocking " + Constants.NEWLINE + + " *WhenOther Paragraph or Section called " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " UT-1-2-6-MOCK SECTION. " + Constants.NEWLINE + + " UT-1-2-2-WO SECTION. " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + - " *Local mock of: SECTION: 200-GOODBYE " + Constants.NEWLINE + - " *In testsuite: \"Mocking tests\" " + Constants.NEWLINE + - " *In testcase: \"Simply a test\" " + Constants.NEWLINE + + " *WhenOther of: SECTION: 200-GOODBYE " + Constants.NEWLINE + " ***************************************************************** " + Constants.NEWLINE + " MOVE \"Bye\" to VALUE-1 " + Constants.NEWLINE + " * CALL bogus USING VALUE-1 " + Constants.NEWLINE + From d3bd505ade0eee5a2c374141b1a57acb298e2a46 Mon Sep 17 00:00:00 2001 From: issacto Date: Sun, 13 Aug 2023 21:09:39 +0100 Subject: [PATCH 120/180] add test tree Signed-off-by: issacto --- vs code extension/client/package.json | 3 + vs code extension/client/src/extension.ts | 205 ++++++++++++++++++ .../src/services/CobolCheckInputParser.ts | 33 +++ .../client/src/services/TestTree.ts | 129 +++++++++++ .../vscode.proposed.testContinuousRun.d.ts | 66 ++++++ .../src/vscode.proposed.testCoverage.d.ts | 198 +++++++++++++++++ .../client/testFixture/alpha.cut | 61 ++++++ .../client/testFixture/syntaxerror.cut | 13 +- vs code extension/client/tsconfig.json | 4 +- vs code extension/package.json | 2 +- 10 files changed, 699 insertions(+), 15 deletions(-) create mode 100644 vs code extension/client/src/services/CobolCheckInputParser.ts create mode 100644 vs code extension/client/src/services/TestTree.ts create mode 100644 vs code extension/client/src/vscode.proposed.testContinuousRun.d.ts create mode 100644 vs code extension/client/src/vscode.proposed.testCoverage.d.ts create mode 100644 vs code extension/client/testFixture/alpha.cut diff --git a/vs code extension/client/package.json b/vs code extension/client/package.json index b781b095..0213f709 100644 --- a/vs code extension/client/package.json +++ b/vs code extension/client/package.json @@ -11,6 +11,9 @@ "dependencies": { "vscode-languageclient": "^7.0.0" }, + "activationEvents": [ + "workspaceContains:*.cut" + ], "devDependencies": { "@types/glob": "^7.1.4", "@types/node": "^15.12.2", diff --git a/vs code extension/client/src/extension.ts b/vs code extension/client/src/extension.ts index e667e6a8..e2193f5c 100644 --- a/vs code extension/client/src/extension.ts +++ b/vs code extension/client/src/extension.ts @@ -15,6 +15,8 @@ import { startCutLanguageClientServer, stopCutLanguageClientServer } from './ser import { ResultWebView } from './services/ResultWebView'; import { handleCobolCheckOut } from './Helpers/ExtensionHelper'; import path = require('path'); +import { getContentFromFilesystem, MarkdownTestData, TestCase, testData, TestFile } from "./services/testTree"; + let externalVsCodeInstallationDir = vscode.extensions.getExtension("openmainframeproject.cobol-check-extension").extensionPath; let configPath = appendPath(externalVsCodeInstallationDir, 'Cobol-check/config.properties'); @@ -29,6 +31,10 @@ export function activate(context: ExtensionContext) { startCutLanguageClientServer(context); const provider = new ResultWebView(context.extensionUri); + const ctrl = vscode.tests.createTestController('CobolCheckController', 'Cobol Check'); + context.subscriptions.push(ctrl); + + const fileChangedEmitter = new vscode.EventEmitter(); context.subscriptions.push( vscode.window.registerWebviewViewProvider(ResultWebView.viewType, provider)); @@ -79,10 +85,209 @@ export function activate(context: ExtensionContext) { context.subscriptions.push(runCobolCheck_Cmd); context.subscriptions.push(setConfiguration_Cmd); context.subscriptions.push(resetConfigurations_Cmd); + + const runHandler = (request: vscode.TestRunRequest2, cancellation: vscode.CancellationToken) => { + if (!request.continuous) { + return startTestRun(request); + } + + const l = fileChangedEmitter.event(uri => startTestRun( + new vscode.TestRunRequest2( + [getOrCreateFile(ctrl, uri).file], + undefined, + request.profile, + true + ), + )); + cancellation.onCancellationRequested(() => l.dispose()); + }; + + const startTestRun = (request: vscode.TestRunRequest) => { + const queue: { test: vscode.TestItem; data: TestCase }[] = []; + const run = ctrl.createTestRun(request); + // map of file uris to statements on each line: + const coveredLines = new Map(); + + const discoverTests = async (tests: Iterable) => { + for (const test of tests) { + if (request.exclude?.includes(test)) { + continue; + } + + const data = testData.get(test); + if (data instanceof TestCase) { + run.enqueued(test); + queue.push({ test, data }); + } else { + if (data instanceof TestFile && !data.didResolve) { + await data.updateFromDisk(ctrl, test); + } + + await discoverTests(gatherTestItems(test.children)); + } + + if (test.uri && !coveredLines.has(test.uri.toString())) { + try { + const lines = (await getContentFromFilesystem(test.uri)).split('\n'); + coveredLines.set( + test.uri.toString(), + lines.map((lineText, lineNo) => + lineText.trim().length ? new vscode.StatementCoverage(0, new vscode.Position(lineNo, 0)) : undefined + ) + ); + } catch { + // ignored + } + } + } + }; + + const runTestQueue = async () => { + for (const { test, data } of queue) { + run.appendOutput(`Running ${test.id}\r\n`); + if (run.token.isCancellationRequested) { + run.skipped(test); + } else { + run.started(test); + await data.run(test, run); + } + + const lineNo = test.range!.start.line; + const fileCoverage = coveredLines.get(test.uri!.toString()); + if (fileCoverage) { + fileCoverage[lineNo]!.executionCount++; + } + + run.appendOutput(`Completed ${test.id}\r\n`); + } + + run.end(); + }; + + run.coverageProvider = { + provideFileCoverage() { + const coverage: vscode.FileCoverage[] = []; + for (const [uri, statements] of coveredLines) { + coverage.push( + vscode.FileCoverage.fromDetails( + vscode.Uri.parse(uri), + statements.filter((s): s is vscode.StatementCoverage => !!s) + ) + ); + } + + return coverage; + }, + }; + + discoverTests(request.include ?? gatherTestItems(ctrl.items)).then(runTestQueue); + }; + + ctrl.refreshHandler = async () => { + await Promise.all(getWorkspaceTestPatterns().map(({ pattern }) => findInitialFiles(ctrl, pattern))); + }; + + ctrl.createRunProfile('Run Tests', vscode.TestRunProfileKind.Run, runHandler, true, undefined, true); + + ctrl.resolveHandler = async item => { + if (!item) { + context.subscriptions.push(...startWatchingWorkspace(ctrl, fileChangedEmitter)); + return; + } + + const data = testData.get(item); + if (data instanceof TestFile) { + await data.updateFromDisk(ctrl, item); + } + }; + + function updateNodeForDocument(e: vscode.TextDocument) { + if (e.uri.scheme !== 'file') { + return; + } + + if (!e.uri.path.endsWith('.cut')) { + return; + } + + const { file, data } = getOrCreateFile(ctrl, e.uri); + data.updateFromContents(ctrl, e.getText(), file); + } + + for (const document of vscode.workspace.textDocuments) { + updateNodeForDocument(document); + } + + context.subscriptions.push( + vscode.workspace.onDidOpenTextDocument(updateNodeForDocument), + vscode.workspace.onDidChangeTextDocument(e => updateNodeForDocument(e.document)), + ); } export function deactivate() { stopCutLanguageClientServer(); } +// Functions for activating tests +function getOrCreateFile(controller: vscode.TestController, uri: vscode.Uri) { + const existing = controller.items.get(uri.toString()); + if (existing) { + return { file: existing, data: testData.get(existing) as TestFile }; + } + + const file = controller.createTestItem(uri.toString(), uri.path.split('/').pop()!, uri); + controller.items.add(file); + + const data = new TestFile(); + testData.set(file, data); + + file.canResolveChildren = true; + return { file, data }; +} + +function gatherTestItems(collection: vscode.TestItemCollection) { + const items: vscode.TestItem[] = []; + collection.forEach(item => items.push(item)); + return items; +} + +function getWorkspaceTestPatterns() { + if (!vscode.workspace.workspaceFolders) { + return []; + } + + return vscode.workspace.workspaceFolders.map(workspaceFolder => ({ + workspaceFolder, + pattern: new vscode.RelativePattern(workspaceFolder, '**/*.cut'), + })); +} + +async function findInitialFiles(controller: vscode.TestController, pattern: vscode.GlobPattern) { + for (const file of await vscode.workspace.findFiles(pattern)) { + getOrCreateFile(controller, file); + } +} + +function startWatchingWorkspace(controller: vscode.TestController, fileChangedEmitter: vscode.EventEmitter ) { + return getWorkspaceTestPatterns().map(({ workspaceFolder, pattern }) => { + const watcher = vscode.workspace.createFileSystemWatcher(pattern); + + watcher.onDidCreate(uri => { + getOrCreateFile(controller, uri); + fileChangedEmitter.fire(uri); + }); + watcher.onDidChange(async uri => { + const { file, data } = getOrCreateFile(controller, uri); + if (data.didResolve) { + await data.updateFromDisk(controller, file); + } + fileChangedEmitter.fire(uri); + }); + watcher.onDidDelete(uri => controller.items.delete(uri.toString())); + + findInitialFiles(controller, pattern); + + return watcher; + }); +} diff --git a/vs code extension/client/src/services/CobolCheckInputParser.ts b/vs code extension/client/src/services/CobolCheckInputParser.ts new file mode 100644 index 00000000..6ad52685 --- /dev/null +++ b/vs code extension/client/src/services/CobolCheckInputParser.ts @@ -0,0 +1,33 @@ +import * as vscode from 'vscode'; + +const testCaseRegex = /^\s*(TESTCASE)\s*(.*)/i; +// const testRegex = /^\s*(Expect)\s*(.*)\s*(not?)\s(>|<|to\s*be)\s*(.*)\s*/i; +const testSuiteRegex = /^\s*(TESTSUITE)\s*(.*)/; + +export const parseMarkdown = (text: string, events: { + onTest(range: vscode.Range, name: string): void; + onHeading(range: vscode.Range, name: string, depth: number): void; +}) => { + const lines = text.split('\n'); + + for (let lineNo = 0; lineNo < lines.length; lineNo++) { + const line = lines[lineNo]; + + const testCase = testCaseRegex.exec(line); + if (testCase) { + var [,pounds, name] = testCase; + name = name.replace(/['"]+/g, ''); + const range = new vscode.Range(new vscode.Position(lineNo, 0), new vscode.Position(lineNo, testCase[0].length)); + events.onTest(range, name); + continue; + } + + + const testSuite = testSuiteRegex.exec(line); + if (testSuite) { + var [,pounds, name] = testSuite; + const range = new vscode.Range(new vscode.Position(lineNo, line.indexOf(pounds)), new vscode.Position(lineNo, line.indexOf(name) + name.length)); + events.onHeading(range, name, 1); + } + } +}; diff --git a/vs code extension/client/src/services/TestTree.ts b/vs code extension/client/src/services/TestTree.ts new file mode 100644 index 00000000..bab55d08 --- /dev/null +++ b/vs code extension/client/src/services/TestTree.ts @@ -0,0 +1,129 @@ +import { TextDecoder } from 'util'; +import * as vscode from 'vscode'; +import { parseMarkdown } from './CobolCheckInputParser'; + +const textDecoder = new TextDecoder('utf-8'); + +export type MarkdownTestData = TestFile | TestHeading | TestCase; + +export const testData = new WeakMap(); + +let generationCounter = 0; + +export const getContentFromFilesystem = async (uri: vscode.Uri) => { + try { + const rawContent = await vscode.workspace.fs.readFile(uri); + return textDecoder.decode(rawContent); + } catch (e) { + console.warn(`Error providing tests for ${uri.fsPath}`, e); + return ''; + } +}; + +export class TestFile { + public didResolve = false; + + public async updateFromDisk(controller: vscode.TestController, item: vscode.TestItem) { + try { + const content = await getContentFromFilesystem(item.uri!); + item.error = undefined; + this.updateFromContents(controller, content, item); + } catch (e) { + item.error = (e as Error).stack; + } + } + + /** + * Parses the tests from the input text, and updates the tests contained + * by this file to be those from the text, + */ + public updateFromContents(controller: vscode.TestController, content: string, item: vscode.TestItem) { + const ancestors = [{ item, children: [] as vscode.TestItem[] }]; + const thisGeneration = generationCounter++; + this.didResolve = true; + + const ascend = (depth: number) => { + while (ancestors.length > depth) { + const finished = ancestors.pop()!; + finished.item.children.replace(finished.children); + } + }; + + parseMarkdown(content, { + onTest: (range, label) => { + const parent = ancestors[ancestors.length - 1]; + const data = new TestCase(label); + const id = `${item.uri}/${data.getLabel()}`; + + + const tcase = controller.createTestItem(id, data.getLabel(), item.uri); + testData.set(tcase, data); + tcase.range = range; + parent.children.push(tcase); + }, + + onHeading: (range, name, depth) => { + ascend(depth); + const parent = ancestors[ancestors.length - 1]; + const id = `${item.uri}/${name}`; + + const thead = controller.createTestItem(id, name, item.uri); + thead.range = range; + testData.set(thead, new TestHeading(thisGeneration)); + parent.children.push(thead); + ancestors.push({ item: thead, children: [] }); + }, + }); + + ascend(0); // finish and assign children for all remaining items + } +} + +export class TestHeading { + constructor(public generation: number) { } +} + +type Operator = '+' | '-' | '*' | '/'; + +export class TestCase { + constructor( + private readonly label: string, + // private readonly a: number, + // private readonly operator: Operator, + // private readonly b: number, + // private readonly expected: number, + // public generation: number + ) { } + + getLabel() { + return this.label; + } + + async run(item: vscode.TestItem, options: vscode.TestRun): Promise { + const start = Date.now(); + await new Promise(resolve => setTimeout(resolve, 1000 + Math.random() * 1000)); + const duration = Date.now() - start; + options.passed(item, duration); + + // if (actual === this.expected) { + // options.passed(item, duration); + // } else { + // const message = vscode.TestMessage.diff(`Expected ${item.label}`, String(this.expected), String(actual)); + // message.location = new vscode.Location(item.uri!, item.range!); + // options.failed(item, message, duration); + // } + } + + // private evaluate() { + // switch (this.operator) { + // case '-': + // return this.a - this.b; + // case '+': + // return this.a + this.b; + // case '/': + // return Math.floor(this.a / this.b); + // case '*': + // return this.a * this.b; + // } + // } +} diff --git a/vs code extension/client/src/vscode.proposed.testContinuousRun.d.ts b/vs code extension/client/src/vscode.proposed.testContinuousRun.d.ts new file mode 100644 index 00000000..bb624013 --- /dev/null +++ b/vs code extension/client/src/vscode.proposed.testContinuousRun.d.ts @@ -0,0 +1,66 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +declare module 'vscode' { + export interface TestRunProfile { + /** + * Whether this profile supports continuous running of requests. If so, + * then {@link TestRunRequest.continuous} may be set to `true`. Defaults + * to false. + */ + supportsContinuousRun: boolean; + + /** + * Handler called to start a test run. When invoked, the function should call + * {@link TestController.createTestRun} at least once, and all test runs + * associated with the request should be created before the function returns + * or the returned promise is resolved. + * + * If {@link supportsContinuousRun} is set, then {@link TestRunRequest2.continuous} + * may be `true`. In this case, the profile should observe changes to + * source code and create new test runs by calling {@link TestController.createTestRun}, + * until the cancellation is requested on the `token`. + * + * @param request Request information for the test run. + * @param cancellationToken Token that signals the used asked to abort the + * test run. If cancellation is requested on this token, all {@link TestRun} + * instances associated with the request will be + * automatically cancelled as well. + */ + runHandler: (request: TestRunRequest, token: CancellationToken) => Thenable | void; + } + + export interface TestController { + /** + * Creates a profile used for running tests. Extensions must create + * at least one profile in order for tests to be run. + * @param label A human-readable label for this profile. + * @param kind Configures what kind of execution this profile manages. + * @param runHandler Function called to start a test run. + * @param isDefault Whether this is the default action for its kind. + * @param tag Profile test tag. + * @param supportsContinuousRun Whether the profile supports continuous running. + * @returns An instance of a {@link TestRunProfile}, which is automatically + * associated with this controller. + */ + createRunProfile(label: string, kind: TestRunProfileKind, runHandler: (request: TestRunRequest, token: CancellationToken) => Thenable | void, isDefault?: boolean, tag?: TestTag, supportsContinuousRun?: boolean): TestRunProfile; + } + + export class TestRunRequest2 extends TestRunRequest { + /** + * Whether the profile should run continuously as source code changes. Only + * relevant for profiles that set {@link TestRunProfile.supportsContinuousRun}. + */ + readonly continuous?: boolean; + + /** + * @param tests Array of specific tests to run, or undefined to run all tests + * @param exclude An array of tests to exclude from the run. + * @param profile The run profile used for this request. + * @param continuous Whether to run tests continuously as source changes. + */ + constructor(include?: readonly TestItem[], exclude?: readonly TestItem[], profile?: TestRunProfile, continuous?: boolean); + } +} diff --git a/vs code extension/client/src/vscode.proposed.testCoverage.d.ts b/vs code extension/client/src/vscode.proposed.testCoverage.d.ts new file mode 100644 index 00000000..7ed26276 --- /dev/null +++ b/vs code extension/client/src/vscode.proposed.testCoverage.d.ts @@ -0,0 +1,198 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +declare module 'vscode' { + + // https://github.com/microsoft/vscode/issues/123713 + + export interface TestRun { + /** + * Test coverage provider for this result. An extension can defer setting + * this until after a run is complete and coverage is available. + */ + coverageProvider?: TestCoverageProvider; + // ... + } + + /** + * Provides information about test coverage for a test result. + * Methods on the provider will not be called until the test run is complete + */ + export interface TestCoverageProvider { + /** + * Returns coverage information for all files involved in the test run. + * @param token A cancellation token. + * @return Coverage metadata for all files involved in the test. + */ + provideFileCoverage(token: CancellationToken): ProviderResult; + + /** + * Give a FileCoverage to fill in more data, namely {@link FileCoverage.detailedCoverage}. + * The editor will only resolve a FileCoverage once, and only if detailedCoverage + * is undefined. + * + * @param coverage A coverage object obtained from {@link provideFileCoverage} + * @param token A cancellation token. + * @return The resolved file coverage, or a thenable that resolves to one. It + * is OK to return the given `coverage`. When no result is returned, the + * given `coverage` will be used. + */ + resolveFileCoverage?(coverage: T, token: CancellationToken): ProviderResult; + } + + /** + * A class that contains information about a covered resource. A count can + * be give for lines, branches, and functions in a file. + */ + export class CoveredCount { + /** + * Number of items covered in the file. + */ + covered: number; + /** + * Total number of covered items in the file. + */ + total: number; + + /** + * @param covered Value for {@link CovereredCount.covered} + * @param total Value for {@link CovereredCount.total} + */ + constructor(covered: number, total: number); + } + + /** + * Contains coverage metadata for a file. + */ + export class FileCoverage { + /** + * File URI. + */ + readonly uri: Uri; + + /** + * Statement coverage information. If the reporter does not provide statement + * coverage information, this can instead be used to represent line coverage. + */ + statementCoverage: CoveredCount; + + /** + * Branch coverage information. + */ + branchCoverage?: CoveredCount; + + /** + * Function coverage information. + */ + functionCoverage?: CoveredCount; + + /** + * Detailed, per-statement coverage. If this is undefined, the editor will + * call {@link TestCoverageProvider.resolveFileCoverage} when necessary. + */ + detailedCoverage?: DetailedCoverage[]; + + /** + * Creates a {@link FileCoverage} instance with counts filled in from + * the coverage details. + * @param uri Covered file URI + * @param detailed Detailed coverage information + */ + static fromDetails(uri: Uri, details: readonly DetailedCoverage[]): FileCoverage; + + /** + * @param uri Covered file URI + * @param statementCoverage Statement coverage information. If the reporter + * does not provide statement coverage information, this can instead be + * used to represent line coverage. + * @param branchCoverage Branch coverage information + * @param functionCoverage Function coverage information + */ + constructor( + uri: Uri, + statementCoverage: CoveredCount, + branchCoverage?: CoveredCount, + functionCoverage?: CoveredCount, + ); + } + + /** + * Contains coverage information for a single statement or line. + */ + export class StatementCoverage { + /** + * The number of times this statement was executed. If zero, the + * statement will be marked as un-covered. + */ + executionCount: number; + + /** + * Statement location. + */ + location: Position | Range; + + /** + * Coverage from branches of this line or statement. If it's not a + * conditional, this will be empty. + */ + branches: BranchCoverage[]; + + /** + * @param location The statement position. + * @param executionCount The number of times this statement was + * executed. If zero, the statement will be marked as un-covered. + * @param branches Coverage from branches of this line. If it's not a + * conditional, this should be omitted. + */ + constructor(executionCount: number, location: Position | Range, branches?: BranchCoverage[]); + } + + /** + * Contains coverage information for a branch of a {@link StatementCoverage}. + */ + export class BranchCoverage { + /** + * The number of times this branch was executed. If zero, the + * branch will be marked as un-covered. + */ + executionCount: number; + + /** + * Branch location. + */ + location?: Position | Range; + + /** + * @param executionCount The number of times this branch was executed. + * @param location The branch position. + */ + constructor(executionCount: number, location?: Position | Range); + } + + /** + * Contains coverage information for a function or method. + */ + export class FunctionCoverage { + /** + * The number of times this function was executed. If zero, the + * function will be marked as un-covered. + */ + executionCount: number; + + /** + * Function location. + */ + location: Position | Range; + + /** + * @param executionCount The number of times this function was executed. + * @param location The function position. + */ + constructor(executionCount: number, location: Position | Range); + } + + export type DetailedCoverage = StatementCoverage | FunctionCoverage; + +} diff --git a/vs code extension/client/testFixture/alpha.cut b/vs code extension/client/testFixture/alpha.cut new file mode 100644 index 00000000..8074bb50 --- /dev/null +++ b/vs code extension/client/testFixture/alpha.cut @@ -0,0 +1,61 @@ + TestSuite "Tests of alphanumeric expectations" + + TestCase "Equality with an alphanumeric literal using TO BE" + move "value1" to ws-field-1 + Expect ws-field-1 to be "value1" + + TestCase "Equality with an alphanumeric literal using TO EQUAL" + move "value2" to ws-field-1 + Expect ws-field-1 to equal "value2" + + TestCase "Equality with an alphanumeric literal using '='" + move "value3" to ws-field-1 + Expect ws-field-1 = "value3" + + TestCase "Equality with an alphanumeric literal and reference modification" + move "Hello, World!" to ws-field-2 + Expect ws-field-2(8:5) to be "World" + + TestCase "Non-equality with an alphanumeric literal using TO BE" + move "value4" to ws-field-1 + Expect ws-field-1 not to be "value1" + + TestCase "Non-equality with an alphanumeric literal using TO EQUAL" + move "value5" to ws-field-1 + Expect ws-field-1 not to equal "value1" + + TestCase "Non-equality with an alphanumeric literal using '!='" + move "value6" to ws-field-1 + Expect ws-field-1 != "value1" + + TestCase "Non-equality with an alphanumeric literal and reference modification" + move "Hello, World!" to ws-field-2 + Expect ws-field-2(8:6) not to be "World" + + TestCase "Greater-than sign with an alphanumeric literal" + move "Beta" to ws-field-1 + move "Alpha" to ws-field-2 + Expect ws-field-1 > ws-field-2 + + TestCase "Less-than sign with an alphanumeric literal" + move "Beta" to ws-field-1 + move "Alpha" to ws-field-2 + Expect ws-field-2 < ws-field-1 + + TestCase "Not greater-than sign with an alphanumeric literal" + move "Beta" to ws-field-1 + move "Alpha" to ws-field-2 + Expect ws-field-2 not > ws-field-1 + + TestCase "Not less-than sign with an alphanumeric literal" + move "Beta" to ws-field-1 + move "Alpha" to ws-field-2 + Expect ws-field-1 not < ws-field-2 + + TestCase "Display numeric" + move 6 to ws-display-numeric + expect ws-display-numeric to be 6 + + + + diff --git a/vs code extension/client/testFixture/syntaxerror.cut b/vs code extension/client/testFixture/syntaxerror.cut index 27d6d1fb..1f59ed77 100644 --- a/vs code extension/client/testFixture/syntaxerror.cut +++ b/vs code extension/client/testFixture/syntaxerror.cut @@ -1,15 +1,5 @@ TESTSUITE 'Test AARM503 sections' - - BEFORE-EACH - MOVE 0 TO STATU-KD IN AARM503-PARM - END-BEFORE - - MOCK SECTION 911-PUT-HARD-ERROR - CONTINU - END-MOCK - - TESTSUITE 'Test AARM504 sections' - + TESTSUITE 'Test AARM504 sections' BEFORE-EACH MOV 0 TO STATU-KD IN AARM503-PARM END-BEFORE @@ -17,4 +7,3 @@ MOCK SECTION 911-PUT-HARD-ERROR CONTINUE END-MOCK - \ No newline at end of file diff --git a/vs code extension/client/tsconfig.json b/vs code extension/client/tsconfig.json index 3b777a89..4233e36e 100644 --- a/vs code extension/client/tsconfig.json +++ b/vs code extension/client/tsconfig.json @@ -2,8 +2,8 @@ "compileOnSave": true, "compilerOptions": { "module": "commonjs", - "target": "es2019", - "lib": ["ES2019"], + "target": "es2020", + "lib": ["es2020"], "outDir": "out", "rootDir": "src", "sourceMap": true diff --git a/vs code extension/package.json b/vs code extension/package.json index c75bbf46..bca77b79 100644 --- a/vs code extension/package.json +++ b/vs code extension/package.json @@ -194,7 +194,7 @@ "@typescript-eslint/parser": "^2.3.0", "eslint": "^6.4.0", "mocha": "^8.1.1", - "typescript": "^4.2.2" + "typescript": "^4.9.5" }, "dependencies": { "@types/vscode-webview": "^1.57.0" From df362fe9a3f315fef3b249f2cb42e1118b170a9b Mon Sep 17 00:00:00 2001 From: "Thomas N. Kramer" Date: Mon, 14 Aug 2023 21:27:20 +0200 Subject: [PATCH 121/180] MOCK enhanced MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Fixing problem where call mocks can´t find the CALL because the call uses qualified variables. Mock and verify will now find the qualifiers for variables and the arguments can now match CALL´s Signed-off-by: Thomas N. Kramer --- src/main/cobol/MOCKTEST.CBL | 16 ++ .../features/testSuiteParser/Keywords.java | 8 + .../testSuiteParser/TestSuiteParser.java | 114 +++++++++--- .../services/cobolLogic/Interpreter.java | 163 +++++++++-------- src/test/cobol/MOCKTEST/MockCallTest.cut | 13 +- .../cobolcheck/KeywordsTest.java | 2 + .../cobolcheck/TestSuiteErrorLogTest.java | 10 +- .../TestSuiteParserParsingTest.java | 168 ++++++++++++++++-- 8 files changed, 378 insertions(+), 116 deletions(-) diff --git a/src/main/cobol/MOCKTEST.CBL b/src/main/cobol/MOCKTEST.CBL index 0994d02b..fd1f2ef0 100644 --- a/src/main/cobol/MOCKTEST.CBL +++ b/src/main/cobol/MOCKTEST.CBL @@ -14,6 +14,11 @@ 05 VALUE-3 PIC X(80). 05 TEMP PIC X(80). + 01 Book-structure. + 05 action-value pic x(1). + 05 book-value pic x(1). + 05 output-value pic x(12). + PROCEDURE DIVISION. 000-START SECTION. @@ -90,6 +95,17 @@ CALL 'PROG1' . + 610-MAKE-CALL-VALUE-IN-STRUCTURE. + MOVE "1" to ACTION-PARAM + MOVE "2" to BOOK-PARAM + MOVE "3" to OUTPUT-VALUE + CALL 'MYCOBOL' USING ACTION-PARAM, + BOOK-PARAM IN BOOK-STRUCTURE, + OUTPUT-PARAM + END-CALL + MOVE OUTPUT-PARAM TO VALUE-1 + . + 700-MAKE-CALL. MOVE "arg1" to VALUE-1 MOVE "arg2" to VALUE-2 diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Keywords.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Keywords.java index 93958d7d..5e17c4b0 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Keywords.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/Keywords.java @@ -65,6 +65,7 @@ public class Keywords { Constants.FIELDNAME_KEYWORD, Constants.BY_REFERENCE_TOKEN, Constants.BY_CONTENT_TOKEN, + Constants.QUALIFIED_FIELD_NAME, Constants.BY_VALUE_TOKEN, Constants.USING_TOKEN) ); @@ -92,6 +93,7 @@ public class Keywords { Constants.BY_VALUE_TOKEN, Constants.USING_TOKEN, Constants.HAPPENED_KEYWORD, + Constants.QUALIFIED_FIELD_NAME, Constants.NEVER_HAPPENED_KEYWORD) ); }}, @@ -445,6 +447,12 @@ public class Keywords { put(Constants.EXPECT_KEYWORD, Arrays.asList( Constants.FIELDNAME_KEYWORD) ); + put(Constants.MOCK_KEYWORD, Arrays.asList( + Constants.FIELDNAME_KEYWORD) + ); + put(Constants.VERIFY_KEYWORD, Arrays.asList( + Constants.FIELDNAME_KEYWORD) + ); }}, KeywordAction.NONE)); diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index 6b8ae6c9..60f2c6d3 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -37,7 +37,7 @@ public class TestSuiteParser { // Used for mocking MockRepository mockRepository; private Mock currentMock; - private String currentMockArgument = ""; + private String parsingDataUsing = ""; private int mockNumber; private boolean expectMockIdentifier; boolean expectUsing; @@ -175,6 +175,10 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, List parsedTestSuiteLines = new ArrayList<>(); numericFields = numericFieldsList; String testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); + String summizedTokensForArgument = Constants.EMPTY_STRING; + boolean lastAddedTokenToArgumentIsQualifier = false; + String parseDataUsingForSummizedTokens = Constants.EMPTY_STRING; + while (testSuiteToken != null) { if (!testSuiteToken.startsWith(Constants.QUOTE) && !testSuiteToken.startsWith(Constants.APOSTROPHE)) { @@ -198,7 +202,10 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, // to next token expectMockArguments = false; expectUsing = false; - handleEndOfMockStatement(testSuiteReader, testSuiteToken, false); + + handleEndOfMockStatement(testSuiteReader, testSuiteToken, false, summizedTokensForArgument, parseDataUsingForSummizedTokens); + summizedTokensForArgument =Constants.EMPTY_STRING; + parseDataUsingForSummizedTokens =Constants.EMPTY_STRING; testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); continue; } @@ -211,7 +218,10 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, expectUsing = false; if (!verifyInProgress) { ignoreCobolStatementAndFieldNameKeyAction = true; - handleEndOfMockStatement(testSuiteReader, testSuiteToken, false); + + handleEndOfMockStatement(testSuiteReader, testSuiteToken, false, summizedTokensForArgument, parseDataUsingForSummizedTokens); + summizedTokensForArgument =Constants.EMPTY_STRING; + parseDataUsingForSummizedTokens =Constants.EMPTY_STRING; } if(testSuiteToken.equals("END-MOCK") ){ testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); @@ -219,8 +229,6 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, continue; } - - if (!testSuiteErrorLog.checkExpectedTokenSyntax(keyword, testSuiteToken, currentTestSuiteRealFile, fileLineNumber, fileLineIndexNumber)) { testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); @@ -351,7 +359,10 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, } currentMock.setIdentifier(testSuiteToken); if (!expectMockArguments) { - handleEndOfMockStatement(testSuiteReader, testSuiteToken, true); + + handleEndOfMockStatement(testSuiteReader, testSuiteToken, true, summizedTokensForArgument, parseDataUsingForSummizedTokens); + summizedTokensForArgument =Constants.EMPTY_STRING; + parseDataUsingForSummizedTokens =Constants.EMPTY_STRING; } } else { if (currentVerify.getType().equals(Constants.CALL_TOKEN)) { @@ -369,23 +380,41 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, currentLineContainsArgument = true; ignoreCobolStatementAndFieldNameKeyAction = true; - if (verifyInProgress) - currentVerify.addArgument(getCallArgument(currentMockArgument, testSuiteToken)); - else - currentMock.addArgument(getCallArgument(currentMockArgument, testSuiteToken)); + if (lastAddedTokenToArgumentIsQualifier) { + // add field to the current mock argument + summizedTokensForArgument += Constants.SPACE + testSuiteToken.replace(",",""); + lastAddedTokenToArgumentIsQualifier = false; + } else { + if (summizedTokensForArgument != Constants.EMPTY_STRING) { + //We have something to add + if (verifyInProgress) { + currentVerify.addArgument(getCallArgument(parseDataUsingForSummizedTokens, summizedTokensForArgument)); + } + else { + currentMock.addArgument(getCallArgument(parseDataUsingForSummizedTokens, summizedTokensForArgument)); + } + summizedTokensForArgument = Constants.EMPTY_STRING; + parseDataUsingForSummizedTokens = Constants.EMPTY_STRING; + } + // if we are putting the variable name into summized and not a qualifier, we save the parse-data-as value + if (summizedTokensForArgument == Constants.EMPTY_STRING) { + parseDataUsingForSummizedTokens = parsingDataUsing; + parsingDataUsing = Constants.EMPTY_STRING; + } + summizedTokensForArgument = testSuiteToken.replace(",",""); + } - currentMockArgument = ""; - }else{ expectUsing = false; expectMockArguments = false; if (!verifyInProgress) { ignoreCobolStatementAndFieldNameKeyAction = true; - handleEndOfMockStatement(testSuiteReader, testSuiteToken, currentLineContainsArgument); - } + handleEndOfMockStatement(testSuiteReader, testSuiteToken, currentLineContainsArgument, summizedTokensForArgument, parseDataUsingForSummizedTokens); + summizedTokensForArgument =Constants.EMPTY_STRING; + parseDataUsingForSummizedTokens =Constants.EMPTY_STRING; + } } - } if (verifyInProgress) { @@ -400,7 +429,6 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, case Constants.ALPHANUMERIC_LITERAL_KEYWORD: - if (expectTestsuiteName) { expectTestsuiteName = false; currentTestSuiteName = testSuiteToken; @@ -422,8 +450,11 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, expectMockArguments = true; } currentMock.setIdentifier(testSuiteToken); + if (!expectMockArguments) { - handleEndOfMockStatement(testSuiteReader, testSuiteToken, true); + handleEndOfMockStatement(testSuiteReader, testSuiteToken, true, summizedTokensForArgument, parseDataUsingForSummizedTokens); + summizedTokensForArgument = Constants.EMPTY_STRING; + parseDataUsingForSummizedTokens =Constants.EMPTY_STRING; } } else { if (currentVerify.getType().equals(Constants.CALL_TOKEN)) { @@ -539,8 +570,9 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, case Constants.BY_REFERENCE_TOKEN: case Constants.BY_CONTENT_TOKEN: case Constants.BY_VALUE_TOKEN: - if (expectMockArguments) - currentMockArgument = testSuiteToken.toUpperCase().replace("BY ", ""); + if (expectMockArguments) { + parsingDataUsing = testSuiteToken.toUpperCase().replace("BY ", ""); + } break; case Constants.VERIFY_KEYWORD: @@ -559,7 +591,9 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, case Constants.NEVER_HAPPENED_KEYWORD: expectMockArguments = false; currentVerify.expectExact("0"); - handleEndOfVerifyStatement(parsedTestSuiteLines); + handleEndOfVerifyStatement(parsedTestSuiteLines, summizedTokensForArgument, parseDataUsingForSummizedTokens); + summizedTokensForArgument =Constants.EMPTY_STRING; + parseDataUsingForSummizedTokens =Constants.EMPTY_STRING; break; case Constants.HAPPENED_KEYWORD: @@ -569,7 +603,9 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, case Constants.ONCE_KEYWORD: if (currentVerify != null){ currentVerify.setExpectedCount("1"); - handleEndOfVerifyStatement(parsedTestSuiteLines); + handleEndOfVerifyStatement(parsedTestSuiteLines, summizedTokensForArgument, parseDataUsingForSummizedTokens); + summizedTokensForArgument =Constants.EMPTY_STRING; + parseDataUsingForSummizedTokens =Constants.EMPTY_STRING; } break; @@ -589,7 +625,9 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, case Constants.TIME_KEYWORD: case Constants.TIMES_KEYWORD: - handleEndOfVerifyStatement(parsedTestSuiteLines); + handleEndOfVerifyStatement(parsedTestSuiteLines, summizedTokensForArgument, parseDataUsingForSummizedTokens); + summizedTokensForArgument =Constants.EMPTY_STRING; + parseDataUsingForSummizedTokens =Constants.EMPTY_STRING; break; case Constants.TO_BE_KEYWORD: @@ -608,6 +646,8 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, if (cobolTokenIsFieldName){ fieldNameForExpect += Constants.SPACE + testSuiteToken + Constants.SPACE; expectQualifiedName = true; + summizedTokensForArgument += Constants.SPACE + testSuiteToken; + lastAddedTokenToArgumentIsQualifier = true; } else @@ -681,6 +721,17 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, return parsedTestSuiteLines; } + /** + * Tells you the token is the last of a set + * @param testSuiteToken + * @return + */ + public boolean containStopValue(String testSuiteToken) { + if (testSuiteToken.contains(",")) return true; + + return false; + } + private List removeToken(List lines, String token) { List newLines = new ArrayList<>(); for (String line : lines) { @@ -794,7 +845,14 @@ private TestSuiteWritingStyle getWritingStyleOfLine(String line) { } private void handleEndOfMockStatement(BufferedReader testSuiteReader, String testSuiteToken, - boolean skipCurrentToken) { + boolean skipCurrentToken, String hangingMockArgument, String parseDataUsing) { + // First add any arguments, not yet added to currentMock + if (hangingMockArgument != Constants.EMPTY_STRING) { + //We have something to add to the Mock + currentMock.addArgument(getCallArgument(parseDataUsing, hangingMockArgument)); + hangingMockArgument = ""; + } + List mockLines = getLinesUntilKeywordHit(testSuiteReader, Constants.ENDMOCK_KEYWORD, testSuiteToken, skipCurrentToken); testSuiteErrorLog.checkSyntaxInsideBlock(Constants.MOCK_KEYWORD, mockLines, keywordExtractor, @@ -825,7 +883,15 @@ private void handleEndOfMockStatement(BufferedReader testSuiteReader, String tes * @throws VerifyReferencesNonexistentMockException if referenced mock, does not * exist */ - public void handleEndOfVerifyStatement(List parsedTestSuiteLines) { + public void handleEndOfVerifyStatement(List parsedTestSuiteLines, String hangingVerifyArgument, String parseDataUsing) { + // First add any arguments, not yet added to currentMock + if (hangingVerifyArgument != Constants.EMPTY_STRING) { + //We have something to add to the Mock + currentVerify.addArgument(getCallArgument(parseDataUsing, hangingVerifyArgument)); + + hangingVerifyArgument = ""; + } + verifyInProgress = false; currentVerify.setAttachedMock(mockRepository.getMockFor(currentVerify.getIdentifier(), currentVerify.getType(), currentTestSuiteName, currentTestCaseName, currentVerify.getArguments())); diff --git a/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java b/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java index af6e69bd..647c764d 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/services/cobolLogic/Interpreter.java @@ -11,6 +11,7 @@ */ public class Interpreter { + private static final String SPACE = " "; // Source tokens from Procedure Division that begin batch I/O statements private static final List batchFileIOVerbs = Arrays.asList( @@ -28,20 +29,21 @@ public class Interpreter { private static final int A_AreaEnd = 11; private static final int B_AreaEnd = 71; - public static int getSequenceNumberAreaIndex(){ + public static int getSequenceNumberAreaIndex() { return sequenceNumberAreaEnd; } //TODO: Speed up method by adding 'else if's and putting 'if's inside 'if's + /** * Sets flags based on a line, to be able to know which kinds of source * statements to look for when reading and interpreting lines. * - * @param line - current source line being processed + * @param line - current source line being processed * @param state - current state of flags * @return - the part of the program just entered or null if no part was entered */ - public static String setFlagsForCurrentLine(CobolLine line, CobolLine nextLine, State state){ + public static String setFlagsForCurrentLine(CobolLine line, CobolLine nextLine, State state) { String partOfProgram = null; if (line.containsToken(Constants.IDENTIFICATION_DIVISION)) { state.setFlagFor(Constants.IDENTIFICATION_DIVISION); @@ -63,7 +65,7 @@ public static String setFlagsForCurrentLine(CobolLine line, CobolLine nextLine, state.setFlagFor(Constants.INPUT_OUTPUT_SECTION); partOfProgram = Constants.INPUT_OUTPUT_SECTION; } - if (line.containsToken(Constants.FILE_CONTROL)){ + if (line.containsToken(Constants.FILE_CONTROL)) { state.setFlagFor(Constants.FILE_CONTROL); partOfProgram = Constants.FILE_CONTROL; } @@ -146,12 +148,12 @@ public static String setFlagsForCurrentLine(CobolLine line, CobolLine nextLine, * (b) - previous line contains just a period * (c) - first token on this line is a Cobol verb * - * @param currentLine - current source line being processed + * @param currentLine - current source line being processed * @param nextMeaningfulLine - next source line that is not empty * @return - true if end of statement is recognized */ public static boolean isEndOfStatement(CobolLine currentLine, CobolLine nextMeaningfulLine) { - if (nextMeaningfulLine == null){ + if (nextMeaningfulLine == null) { return true; } if (currentLine.getTrimmedString().endsWith(Constants.PERIOD)) { @@ -160,7 +162,7 @@ public static boolean isEndOfStatement(CobolLine currentLine, CobolLine nextMean if (currentLine.getTrimmedString().toUpperCase(Locale.ROOT).endsWith(Constants.END_EXEC_TOKEN)) { return true; } - if (containsOnlyPeriod(nextMeaningfulLine)){ + if (containsOnlyPeriod(nextMeaningfulLine)) { return false; } if (CobolVerbs.isStartOrEndCobolVerb(nextMeaningfulLine.getTokens().get(0))) { @@ -174,7 +176,7 @@ public static boolean lineEndsParagraphOrSection(CobolLine currentLine, CobolLin if (currentLine == null || nextLine == null || lineFollowingNext == null) return true; - if (endsInPeriod(currentLine) || containsOnlyPeriod(currentLine)){ + if (endsInPeriod(currentLine) || containsOnlyPeriod(currentLine)) { return (isSectionHeader(nextLine, state) || isParagraphHeader(nextLine, lineFollowingNext, state)); } return false; @@ -202,7 +204,7 @@ public static boolean isComment(String line) { return commentIndicators.contains(line.charAt(commentIndicatorOffset)); } - public static boolean isMeaningful(CobolLine line){ + public static boolean isMeaningful(CobolLine line) { return line != null && !isEmpty(line) && !isComment(line) && !isTooShortToBeMeaningful(line); } @@ -210,7 +212,7 @@ public static boolean isMeaningful(CobolLine line){ * @param line * @return true if the source line is empty */ - public static boolean isEmpty(CobolLine line){ + public static boolean isEmpty(CobolLine line) { return line.tokensSize() == 0 && !containsOnlyPeriod(line); } @@ -219,17 +221,17 @@ public static boolean isEmpty(CobolLine line){ * @param state * @return true if the source line should be parsed */ - public static boolean shouldLineBeParsed(CobolLine line, State state){ - if (isTooShortToBeMeaningful(line) && line.tokensSize() > 0){ + public static boolean shouldLineBeParsed(CobolLine line, State state) { + if (isTooShortToBeMeaningful(line) && line.tokensSize() > 0) { return false; } - if (state.isFlagSetFor(Constants.FILE_SECTION) && ! (line.containsToken(Constants.FILE_SECTION))){ + if (state.isFlagSetFor(Constants.FILE_SECTION) && !(line.containsToken(Constants.FILE_SECTION))) { if (line.containsToken(Constants.REPLACE_TOKEN)) return true; return false; } - if (state.isFlagSetFor(Constants.FILE_CONTROL)&& ! (line.containsToken(Constants.FILE_CONTROL))){ + if (state.isFlagSetFor(Constants.FILE_CONTROL) && !(line.containsToken(Constants.FILE_CONTROL))) { if (line.containsToken(Constants.REPLACE_TOKEN)) return true; @@ -244,11 +246,10 @@ public static boolean shouldLineBeParsed(CobolLine line, State state){ * @param state * @return true if the source line should be commented out */ - public static boolean shouldLineBeStubbed(CobolLine line, State state){ - if (state.isFlagSetFor(Constants.PROCEDURE_DIVISION)){ + public static boolean shouldLineBeStubbed(CobolLine line, State state) { + if (state.isFlagSetFor(Constants.PROCEDURE_DIVISION)) { if (checkForBatchFileIOStatement(line) || line.containsToken(Constants.CALL_TOKEN) || - line.containsToken(Constants.EXEC_SQL_TOKEN) || line.containsToken(Constants.EXEC_CICS_TOKEN)) - { + line.containsToken(Constants.EXEC_SQL_TOKEN) || line.containsToken(Constants.EXEC_CICS_TOKEN)) { return true; } } @@ -260,10 +261,9 @@ public static boolean shouldLineBeStubbed(CobolLine line, State state){ * @param state * @return true if the source line should be commented out */ - public static String getStubEndToken(CobolLine line, State state){ - if (state.isFlagSetFor(Constants.PROCEDURE_DIVISION)){ - if (line.containsToken(Constants.EXEC_SQL_TOKEN) || line.containsToken(Constants.EXEC_CICS_TOKEN)) - { + public static String getStubEndToken(CobolLine line, State state) { + if (state.isFlagSetFor(Constants.PROCEDURE_DIVISION)) { + if (line.containsToken(Constants.EXEC_SQL_TOKEN) || line.containsToken(Constants.EXEC_CICS_TOKEN)) { return Constants.END_EXEC_TOKEN; } } @@ -275,13 +275,13 @@ public static String getStubEndToken(CobolLine line, State state){ * @param state * @return true if the source line should be commented out */ - public static boolean shouldLineBeReadAsStatement(CobolLine line, State state){ - if (state.isFlagSetFor(Constants.FILE_SECTION) || state.isFlagSetFor(Constants.FILE_CONTROL)){ + public static boolean shouldLineBeReadAsStatement(CobolLine line, State state) { + if (state.isFlagSetFor(Constants.FILE_SECTION) || state.isFlagSetFor(Constants.FILE_CONTROL)) { if (line.containsToken(Constants.REPLACE_TOKEN)) return true; } - if (state.isFlagSetFor(Constants.DATA_DIVISION)){ - if (!Interpreter.endsInPeriod(line)){ + if (state.isFlagSetFor(Constants.DATA_DIVISION)) { + if (!Interpreter.endsInPeriod(line)) { return true; } } @@ -290,12 +290,12 @@ public static boolean shouldLineBeReadAsStatement(CobolLine line, State state){ public static boolean lineContainsBinaryFieldDefinition(CobolLine line) { return line.containsToken(Constants.COMP_VALUE) - || line.containsToken(Constants.COMP_4_VALUE) - || line.containsToken(Constants.COMP_5_VALUE) - || line.containsToken(Constants.BINARY); + || line.containsToken(Constants.COMP_4_VALUE) + || line.containsToken(Constants.COMP_5_VALUE) + || line.containsToken(Constants.BINARY); } - public static boolean containsOnlyPeriod(CobolLine line){ + public static boolean containsOnlyPeriod(CobolLine line) { return line == null ? false : line.getTrimmedString().equals(Constants.PERIOD); } @@ -317,16 +317,15 @@ private static boolean isBatchFileIOStatement(List tokens, String ioVerb } - public static String getSectionOrParagraphName(CobolLine line){ - if (line.tokensSize() > 0){ + public static String getSectionOrParagraphName(CobolLine line) { + if (line.tokensSize() > 0) { return line.getToken(0); - } - else { + } else { return null; } } - public static boolean isSectionHeader(CobolLine line, State state){ + public static boolean isSectionHeader(CobolLine line, State state) { return state.isFlagSetFor(Constants.PROCEDURE_DIVISION) && line.containsToken(Constants.SECTION_TOKEN) && getBeginningArea(line, true) == Area.A; @@ -336,12 +335,12 @@ public static boolean isSectionHeader(CobolLine line, State state){ * As paragraph headers are not associated with any keyword, the method matches the * source line against specific attributes that makes up a paragraph header. * - * @param line - The line to check + * @param line - The line to check * @param nextLine - The line after the line param - * @param state - current state of flags + * @param state - current state of flags * @return true if the source line have all the attributes of a paragraph header. */ - public static boolean isParagraphHeader(CobolLine line, CobolLine nextLine, State state){ + public static boolean isParagraphHeader(CobolLine line, CobolLine nextLine, State state) { return (state.isFlagSetFor(Constants.PROCEDURE_DIVISION) && isParagraphHeaderFormat(line, nextLine) && !line.containsToken(Constants.PROCEDURE_DIVISION) @@ -354,16 +353,16 @@ && isParagraphHeaderFormat(line, nextLine) * - It has only one token * - The token is followed by a period on this or the next line. * - * @param line - The line to check + * @param line - The line to check * @param nextLine - The line after the line param * @return true if sourceLine is of the format of a paragraph header */ - private static boolean isParagraphHeaderFormat(CobolLine line, CobolLine nextLine){ - if (getBeginningArea(line, true) == Area.A){ - if (line.tokensSize() == 1) { + private static boolean isParagraphHeaderFormat(CobolLine line, CobolLine nextLine) { + if (getBeginningArea(line, true) == Area.A) { + if (line.tokensSize() == 1) { if (line.getTrimmedString().endsWith(Constants.PERIOD) || (nextLine != null && - nextLine.getTrimmedString().equals(Constants.PERIOD))) + nextLine.getTrimmedString().equals(Constants.PERIOD))) return true; } } @@ -371,24 +370,44 @@ private static boolean isParagraphHeaderFormat(CobolLine line, CobolLine nextLin } public static List getUsingArgs(CobolLine line) { + List arguments = new ArrayList<>(); List argumentReferences = Arrays.asList(Constants.BY_REFERENCE_TOKEN, Constants.BY_CONTENT_TOKEN, Constants.BY_VALUE_TOKEN); + List qualifyReference = Arrays.asList(Constants.IN_KEYWORD, Constants.OF_KEYWORD); + String currentArgumentReference = Constants.BY_REFERENCE_TOKEN; - if (line.containsToken(Constants.USING_TOKEN)){ + if (line.containsToken(Constants.USING_TOKEN)) { int usingIndex = line.getTokenIndexOf(Constants.USING_TOKEN); - - for(int i = usingIndex + 1; i < line.tokensSize(); i++){ + int i = usingIndex + 1; + while (i < line.tokensSize()) { if (line.getToken(i).toUpperCase(Locale.ROOT).equals(Constants.END_CALL_TOKEN)) break; - if (argumentReferences.contains(line.getToken(i).toUpperCase(Locale.ROOT))){ + if (argumentReferences.contains(line.getToken(i).toUpperCase(Locale.ROOT))) { currentArgumentReference = line.getToken(i).toUpperCase(); + i++; continue; } currentArgumentReference = currentArgumentReference.replace("BY ", ""); - arguments.add(currentArgumentReference + " " + line.getToken(i).replace(",","")); + + String newArgument = currentArgumentReference + SPACE + line.getToken(i); + + // if there is more tokens (2 or more), it may be a qualifier for the argument + int minimumTokensLeft = 2; + if (i < (line.tokensSize() - minimumTokensLeft)) { + // if 'next' token is a qualifier token, add this AND next (type? add here) token + if (qualifyReference.contains(line.getToken(i + 1).toUpperCase(Locale.ROOT))) { + // the token is qualified, add + newArgument = newArgument + SPACE + + line.getToken(i + 1).toUpperCase() + SPACE + + line.getToken(i + 2).toUpperCase(); + i += 2; + } + } + arguments.add(newArgument.replace(",","")); currentArgumentReference = Constants.BY_REFERENCE_TOKEN; + i++; } } return arguments; @@ -401,22 +420,21 @@ public static List getUsingArgs(CobolLine line) { * @param line - the line to get the area for * @return the beginning area of the source line. */ - public static Area getBeginningArea(CobolLine line, boolean ignoreSequenceArea){ + public static Area getBeginningArea(CobolLine line, boolean ignoreSequenceArea) { if (isTooShortToBeMeaningful(line) || - (ignoreSequenceArea && line.getUnNumberedString().length() <= sequenceNumberAreaEnd + 1)){ + (ignoreSequenceArea && line.getUnNumberedString().length() <= sequenceNumberAreaEnd + 1)) { return Area.NONE; } char[] characters; int index = 0; - if (ignoreSequenceArea){ + if (ignoreSequenceArea) { characters = line.getUnNumberedString().toCharArray(); index = sequenceNumberAreaEnd; - } - else{ + } else { characters = line.getOriginalString().toCharArray(); } - while (characters[index] == ' '){ + while (characters[index] == ' ') { index++; } @@ -428,7 +446,7 @@ public static Area getBeginningArea(CobolLine line, boolean ignoreSequenceArea){ return Area.NONE; } - public static boolean isInNumericFormat(String token){ + public static boolean isInNumericFormat(String token) { List numberCharacters = Arrays.asList('9', 'Z', 'V', 'S', '*', '$'); char firstLetter = token.toCharArray()[0]; return numberCharacters.contains(Character.toUpperCase(firstLetter)); @@ -459,29 +477,28 @@ public static boolean endsInPeriod(List lines) { } /** - * Depending on the line that is being interpreted, we want to make sure that we update - * the current datastructure. This structure is based on the lines we have read so far in + * Depending on the line that is being interpreted, we want to make sure that we update + * the current datastructure. This structure is based on the lines we have read so far in * working storage. * This will make sure to add or remove any referenced field within the structure, based on * the level of said field within the structure. */ - public static TreeMap updateCurrentDataStructure(List currentStatement, TreeMap currentHierarchy) { + public static TreeMap updateCurrentDataStructure(List currentStatement, TreeMap currentHierarchy) { String[] statementWords = extractStatementWords(currentStatement); - if (currentHierarchy==null) { + if (currentHierarchy == null) { currentHierarchy = new TreeMap<>(); } int lastKeyOfCurrentHierarchy; if (currentHierarchy.isEmpty()) { - lastKeyOfCurrentHierarchy=0; - } - else { + lastKeyOfCurrentHierarchy = 0; + } else { lastKeyOfCurrentHierarchy = currentHierarchy.lastKey(); } - if (!isInteger(statementWords[0])){ + if (!isInteger(statementWords[0])) { return currentHierarchy; } int cobolLevelNumber = determineCobolLevelNumber(statementWords[0]); @@ -517,22 +534,22 @@ private static boolean isInteger(String testString) { } } - private static Integer determineCobolLevelNumber(String levelNumberString){ + private static Integer determineCobolLevelNumber(String levelNumberString) { int cobolLevelNumber = Integer.parseInt(levelNumberString); - if (cobolLevelNumber == 77){ + if (cobolLevelNumber == 77) { cobolLevelNumber = 01; } return cobolLevelNumber; } - private static String[] extractStatementWords(List currentStatement){ - String statementString = ""; - for(CobolLine loopLine: currentStatement){ - statementString += loopLine.getTrimmedString(); - } - statementString = statementString.trim().replace(Constants.PERIOD, ""); - String[] statementWords = statementString.split("\\s+"); - return statementWords; + private static String[] extractStatementWords(List currentStatement) { + String statementString = ""; + for (CobolLine loopLine : currentStatement) { + statementString += loopLine.getTrimmedString(); + } + statementString = statementString.trim().replace(Constants.PERIOD, ""); + String[] statementWords = statementString.split("\\s+"); + return statementWords; } } diff --git a/src/test/cobol/MOCKTEST/MockCallTest.cut b/src/test/cobol/MOCKTEST/MockCallTest.cut index 7a2df853..9de9a703 100644 --- a/src/test/cobol/MOCKTEST/MockCallTest.cut +++ b/src/test/cobol/MOCKTEST/MockCallTest.cut @@ -138,4 +138,15 @@ MOVE "Local PROG1" TO VALUE-1 END-MOCK PERFORM 600-MAKE-CALL - EXPECT VALUE-1 TO BE "Global PROG1" \ No newline at end of file + EXPECT VALUE-1 TO BE "Global PROG1" + + + TestCase "CALL MOCK using parameters with IN are recognized correctly" + MOVE SPACES TO OUTPUT-VALUE + MOCK CALL 'MYCOBOL' USING ACTION-PARAM, + BOOK-PARAM in COBOL-STRUCTURE, + OUTPUT-PARAM. + MOVE "MOCKED" TO OUTPUT-VALUE + END-MOCK + PERFORM 610-MAKE-CALL-STRUCTURE + EXPECT OUTPUT-VALUE TO BE "MOCKED" \ No newline at end of file diff --git a/src/test/java/org/openmainframeproject/cobolcheck/KeywordsTest.java b/src/test/java/org/openmainframeproject/cobolcheck/KeywordsTest.java index 86307dae..4d45b5b8 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/KeywordsTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/KeywordsTest.java @@ -221,6 +221,7 @@ public void it_gets_valid_next_keys_in_mock_context_for_field_name() { Constants.FIELDNAME_KEYWORD, Constants.BY_REFERENCE_TOKEN, Constants.BY_CONTENT_TOKEN, + Constants.QUALIFIED_FIELD_NAME, Constants.BY_VALUE_TOKEN, Constants.USING_TOKEN), keyword.getValidNextKeys(Constants.MOCK_KEYWORD)); @@ -235,6 +236,7 @@ public void it_gets_valid_next_keys_in_verify_context_for_field_name() { Constants.BY_VALUE_TOKEN, Constants.USING_TOKEN, Constants.HAPPENED_KEYWORD, + Constants.QUALIFIED_FIELD_NAME, Constants.NEVER_HAPPENED_KEYWORD), keyword.getValidNextKeys(Constants.VERIFY_KEYWORD)); } diff --git a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java index 70eccf56..5acf47b6 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteErrorLogTest.java @@ -305,7 +305,7 @@ public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_argume expectedResult += "SYNTAX ERROR in file: null:3:60:" + Constants.NEWLINE; expectedResult += "Unexpected token on line 3, index 60:" + Constants.NEWLINE; expectedResult += "Following classified as " + Constants.NEWLINE; - expectedResult += "Expected classification in the context of MOCK: [END-MOCK, fieldname, BY REFERENCE, BY CONTENT, BY VALUE, USING]" + Constants.NEWLINE; + expectedResult += "Expected classification in the context of MOCK: [END-MOCK, fieldname, BY REFERENCE, BY CONTENT, qualified-field-name, BY VALUE, USING]" + Constants.NEWLINE; expectedResult += "Got < ONCE> classified as < ONCE>" + Constants.NEWLINE+ Constants.NEWLINE; expectedResult += "SYNTAX ERROR in file: null:3:11:" + Constants.NEWLINE; expectedResult += "Unexpected token on line 3, index 11:" + Constants.NEWLINE; @@ -332,7 +332,7 @@ public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_argume expectedResult += "SYNTAX ERROR in file: null:3:60:" + Constants.NEWLINE; expectedResult += "Unexpected token on line 3, index 60:" + Constants.NEWLINE; expectedResult += "Following classified as " + Constants.NEWLINE; - expectedResult += "Expected classification in the context of MOCK: [END-MOCK, fieldname, BY REFERENCE, BY CONTENT, BY VALUE, USING]" + Constants.NEWLINE; + expectedResult += "Expected classification in the context of MOCK: [END-MOCK, fieldname, BY REFERENCE, BY CONTENT, qualified-field-name, BY VALUE, USING]" + Constants.NEWLINE; expectedResult += "Got classified as " + Constants.NEWLINE+ Constants.NEWLINE; expectedResult += "SYNTAX ERROR in file: null:3:11:" + Constants.NEWLINE; expectedResult += "Unexpected token on line 3, index 11:" + Constants.NEWLINE; @@ -359,7 +359,7 @@ public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_argume expectedResult += "SYNTAX ERROR in file: null:3:59:" + Constants.NEWLINE; expectedResult += "Unexpected token on line 3, index 59:" + Constants.NEWLINE; expectedResult += "Following classified as " + Constants.NEWLINE; - expectedResult += "Expected classification in the context of MOCK: [END-MOCK, fieldname, BY REFERENCE, BY CONTENT, BY VALUE, USING]" + Constants.NEWLINE; + expectedResult += "Expected classification in the context of MOCK: [END-MOCK, fieldname, BY REFERENCE, BY CONTENT, qualified-field-name, BY VALUE, USING]" + Constants.NEWLINE; expectedResult += "Got < ONCE> classified as < ONCE>" + Constants.NEWLINE+ Constants.NEWLINE; expectedResult += "SYNTAX ERROR in file: null:3:11:" + Constants.NEWLINE; expectedResult += "Unexpected token on line 3, index 11:" + Constants.NEWLINE; @@ -386,7 +386,7 @@ public void it_catches_unexpected_keyword_at_the_end_of_mock_context_with_argume expectedResult += "SYNTAX ERROR in file: null:3:59:" + Constants.NEWLINE; expectedResult += "Unexpected token on line 3, index 59:" + Constants.NEWLINE; expectedResult += "Following classified as " + Constants.NEWLINE; - expectedResult += "Expected classification in the context of MOCK: [END-MOCK, fieldname, BY REFERENCE, BY CONTENT, BY VALUE, USING]" + Constants.NEWLINE; + expectedResult += "Expected classification in the context of MOCK: [END-MOCK, fieldname, BY REFERENCE, BY CONTENT, qualified-field-name, BY VALUE, USING]" + Constants.NEWLINE; expectedResult += "Got classified as " + Constants.NEWLINE+ Constants.NEWLINE; expectedResult += "SYNTAX ERROR in file: null:3:11:" + Constants.NEWLINE; expectedResult += "Unexpected token on line 3, index 11:" + Constants.NEWLINE; @@ -441,7 +441,7 @@ public void it_catches_unexpected_keyword_in_a_verify_context() { expectedResult += "SYNTAX ERROR in file: null:3:25:" + Constants.NEWLINE; expectedResult += "Unexpected token on line 3, index 25:" + Constants.NEWLINE; expectedResult += "Following classified as " + Constants.NEWLINE; - expectedResult += "Expected classification in the context of VERIFY: [fieldname, BY REFERENCE, BY CONTENT, BY VALUE, USING, HAPPENED, NEVER HAPPENED]" + Constants.NEWLINE; + expectedResult += "Expected classification in the context of VERIFY: [fieldname, BY REFERENCE, BY CONTENT, BY VALUE, USING, HAPPENED, qualified-field-name, NEVER HAPPENED]" + Constants.NEWLINE; expectedResult += "Got <'PROG3'> classified as " + Constants.NEWLINE + Constants.NEWLINE; expectedResult += "RUNTIME ERROR in file: null:3:8:" + Constants.NEWLINE; expectedResult += "Unexpected token on line 3, index 8:" + Constants.NEWLINE; diff --git a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteParserParsingTest.java b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteParserParsingTest.java index 0fe24d18..feaa3b62 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteParserParsingTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteParserParsingTest.java @@ -240,7 +240,7 @@ public void it_generates_lines_for_verify_statement_with_exact_comparison() { new BufferedReader(new StringReader(testSuite.toString())), numericFields); List actualResult = new ArrayList<>(); - testSuiteParser.handleEndOfVerifyStatement(actualResult); + testSuiteParser.handleEndOfVerifyStatement(actualResult,Constants.EMPTY_STRING,Constants.EMPTY_STRING); assertEquals(expectedResult, actualResult); } @@ -268,7 +268,7 @@ public void it_generates_lines_for_verify_statement_with_at_least_comparison() { new BufferedReader(new StringReader(testSuite.toString())), numericFields); List actualResult = new ArrayList<>(); - testSuiteParser.handleEndOfVerifyStatement(actualResult); + testSuiteParser.handleEndOfVerifyStatement(actualResult,Constants.EMPTY_STRING,Constants.EMPTY_STRING); assertEquals(expectedResult, actualResult); } @@ -295,7 +295,7 @@ public void it_generates_lines_for_verify_statement_with_no_more_than_comparison new BufferedReader(new StringReader(testSuite.toString())), numericFields); List actualResult = new ArrayList<>(); - testSuiteParser.handleEndOfVerifyStatement(actualResult); + testSuiteParser.handleEndOfVerifyStatement(actualResult,Constants.EMPTY_STRING,Constants.EMPTY_STRING); assertEquals(expectedResult, actualResult); } @@ -321,7 +321,7 @@ public void it_generates_lines_for_verify_never_happened_statement() { new BufferedReader(new StringReader(testSuite.toString())), numericFields); List actualResult = new ArrayList<>(); - testSuiteParser.handleEndOfVerifyStatement(actualResult); + testSuiteParser.handleEndOfVerifyStatement(actualResult,Constants.EMPTY_STRING,Constants.EMPTY_STRING); assertEquals(expectedResult, actualResult); } @@ -347,7 +347,7 @@ public void it_generates_lines_for_verify_no_more_than_once_statement() { new BufferedReader(new StringReader(testSuite.toString())), numericFields); List actualResult = new ArrayList<>(); - testSuiteParser.handleEndOfVerifyStatement(actualResult); + testSuiteParser.handleEndOfVerifyStatement(actualResult,Constants.EMPTY_STRING,Constants.EMPTY_STRING); assertEquals(expectedResult, actualResult); } @@ -373,7 +373,7 @@ public void it_generates_lines_for_verify_happened_once_statement() { new BufferedReader(new StringReader(testSuite.toString())), numericFields); List actualResult = new ArrayList<>(); - testSuiteParser.handleEndOfVerifyStatement(actualResult); + testSuiteParser.handleEndOfVerifyStatement(actualResult,Constants.EMPTY_STRING,Constants.EMPTY_STRING); assertEquals(expectedResult, actualResult); } @@ -398,7 +398,7 @@ public void if_local_and_global_mock_exists_in_scope_verify_attaches_to_local() new BufferedReader(new StringReader(testSuite.toString())), numericFields); List actualResult = new ArrayList<>(); - testSuiteParser.handleEndOfVerifyStatement(actualResult); + testSuiteParser.handleEndOfVerifyStatement(actualResult,Constants.EMPTY_STRING,Constants.EMPTY_STRING); assertEquals(expectedFirstLine, actualResult.get(0)); } @@ -425,7 +425,7 @@ public void verify_can_attach_to_global_mock() { new BufferedReader(new StringReader(testSuite.toString())), numericFields); List actualResult = new ArrayList<>(); - testSuiteParser.handleEndOfVerifyStatement(actualResult); + testSuiteParser.handleEndOfVerifyStatement(actualResult,Constants.EMPTY_STRING,Constants.EMPTY_STRING); assertEquals(expectedResult, actualResult); } @@ -452,7 +452,7 @@ public void verify_can_attach_to_call_mock_with_no_arguments() { new BufferedReader(new StringReader(testSuite.toString())), numericFields); List actualResult = new ArrayList<>(); - testSuiteParser.handleEndOfVerifyStatement(actualResult); + testSuiteParser.handleEndOfVerifyStatement(actualResult,Constants.EMPTY_STRING,Constants.EMPTY_STRING); assertEquals(expectedResult, actualResult); } @@ -460,13 +460,13 @@ public void verify_can_attach_to_call_mock_with_no_arguments() { public void verify_can_attach_to_call_mock_with_arguments() { testSuite.append(" TESTSUITE \"Name of test suite\""); testSuite.append(" TESTCASE \"Name of test case\""); - testSuite.append(" MOCK CALL 'PROG1' USING this, BY CONTENT other"); + testSuite.append(" MOCK CALL 'PROG1' USING this-default, BY CONTENT other-by-content"); testSuite.append(" MOVE \"something\" TO this"); testSuite.append(" MOVE \"something else\" TO other"); testSuite.append(" END-MOCK"); testSuite.append(" PERFORM 000-START"); testSuite.append(" VERIFY CALL 'PROG1' USING"); - testSuite.append(" this, BY CONTENT other"); + testSuite.append(" this-default, BY CONTENT other-by-content"); testSuite.append(" HAPPENED ONCE"); List expectedResult = new ArrayList<>(); @@ -481,10 +481,146 @@ public void verify_can_attach_to_call_mock_with_arguments() { new BufferedReader(new StringReader(testSuite.toString())), numericFields); List actualResult = new ArrayList<>(); - testSuiteParser.handleEndOfVerifyStatement(actualResult); + testSuiteParser.handleEndOfVerifyStatement(actualResult,Constants.EMPTY_STRING,Constants.EMPTY_STRING); assertEquals(expectedResult, actualResult); } + + @Test + public void verify_can_attach_to_call_mock_with_qualified_arguments() { + testSuite.append(" TESTSUITE \"call_mock_with_arguments\""); + testSuite.append(" TESTCASE \"qualified_arguments\""); + testSuite.append(" MOCK CALL 'PROG1' USING this in this-place, BY CONTENT other in this-place"); + testSuite.append(" MOVE \"something\" TO this"); + testSuite.append(" MOVE \"something else\" TO other"); + testSuite.append(" END-MOCK"); + testSuite.append(" PERFORM 000-START"); + testSuite.append(" VERIFY CALL 'PROG1' USING"); + testSuite.append(" this in this-place, BY CONTENT other in this-place"); + testSuite.append(" HAPPENED ONCE"); + + List expectedResult = new ArrayList<>(); + expectedResult.add(" MOVE 1 TO UT-1-1-1-MOCK-EXPECTED"); + expectedResult.add(" MOVE UT-1-1-1-MOCK-COUNT TO UT-ACTUAL-ACCESSES"); + expectedResult.add(" MOVE UT-1-1-1-MOCK-EXPECTED TO UT-EXPECTED-ACCESSES"); + expectedResult.add(" MOVE UT-1-1-1-MOCK-NAME TO UT-MOCK-OPERATION"); + expectedResult.add(" SET UT-VERIFY-EXACT TO TRUE"); + expectedResult.add(" ADD 1 TO UT-TEST-CASE-COUNT"); + expectedResult.add(" PERFORM UT-ASSERT-ACCESSES"); + testSuiteParser.getParsedTestSuiteLines( + new BufferedReader(new StringReader(testSuite.toString())), + numericFields); + List actualResult = new ArrayList<>(); + testSuiteParser.handleEndOfVerifyStatement(actualResult,Constants.EMPTY_STRING,Constants.EMPTY_STRING); + assertEquals(expectedResult, actualResult); + } + + @Test + public void verify_missing_call_mock_with_qualified_arguments() { + testSuite.append(" TESTSUITE \"call_mock_with_arguments\""); + testSuite.append(" TESTCASE \"qualified_arguments\""); + testSuite.append(" MOCK CALL 'PROG1' USING this in this-place, BY CONTENT other in this-place"); + testSuite.append(" MOVE \"something\" TO this"); + testSuite.append(" MOVE \"something else\" TO other"); + testSuite.append(" END-MOCK"); + testSuite.append(" PERFORM 000-START"); + testSuite.append(" VERIFY CALL 'PROG1' USING"); + testSuite.append(" this in new-place, BY CONTENT other in new-place"); + testSuite.append(" HAPPENED ONCE"); + + List expectedResult = new ArrayList<>(); + expectedResult.add(" MOVE 1 TO UT-1-1-1-MOCK-EXPECTED"); + expectedResult.add(" MOVE UT-1-1-1-MOCK-COUNT TO UT-ACTUAL-ACCESSES"); + expectedResult.add(" MOVE UT-1-1-1-MOCK-EXPECTED TO UT-EXPECTED-ACCESSES"); + expectedResult.add(" MOVE UT-1-1-1-MOCK-NAME TO UT-MOCK-OPERATION"); + expectedResult.add(" SET UT-VERIFY-EXACT TO TRUE"); + expectedResult.add(" ADD 1 TO UT-TEST-CASE-COUNT"); + expectedResult.add(" PERFORM UT-ASSERT-ACCESSES"); + try { + testSuiteParser.getParsedTestSuiteLines( + new BufferedReader(new StringReader(testSuite.toString())),numericFields); + List actualResult = new ArrayList<>(); + + testSuiteParser.handleEndOfVerifyStatement(actualResult, Constants.EMPTY_STRING, Constants.EMPTY_STRING); + // the following assert must not be performed! + fail("An exception should have been thrown :("); + } catch (VerifyReferencesNonexistentMockException mockException) { + assertNotNull(mockException); + assertTrue(mockException.getMessage().indexOf("nonexistent mock")>0); + } + } + + @Test + public void verify_missing_call_mock_with_qualified_arguments_2() { + testSuite.append(" TESTSUITE \"call_mock_with_arguments\""); + testSuite.append(" TESTCASE \"qualified_arguments\""); + testSuite.append(" MOCK CALL 'PROG1' USING this in this-place, BY CONTENT other in this-place"); + testSuite.append(" MOVE \"something\" TO this"); + testSuite.append(" MOVE \"something else\" TO other"); + testSuite.append(" END-MOCK"); + testSuite.append(" PERFORM 000-START"); + testSuite.append(" VERIFY CALL 'PROG1' USING"); + testSuite.append(" this in this-place, BY CONTENT other in this-place new-surprise-var"); + testSuite.append(" HAPPENED ONCE"); + + List expectedResult = new ArrayList<>(); + expectedResult.add(" MOVE 1 TO UT-1-1-1-MOCK-EXPECTED"); + expectedResult.add(" MOVE UT-1-1-1-MOCK-COUNT TO UT-ACTUAL-ACCESSES"); + expectedResult.add(" MOVE UT-1-1-1-MOCK-EXPECTED TO UT-EXPECTED-ACCESSES"); + expectedResult.add(" MOVE UT-1-1-1-MOCK-NAME TO UT-MOCK-OPERATION"); + expectedResult.add(" SET UT-VERIFY-EXACT TO TRUE"); + expectedResult.add(" ADD 1 TO UT-TEST-CASE-COUNT"); + expectedResult.add(" PERFORM UT-ASSERT-ACCESSES"); + try { + testSuiteParser.getParsedTestSuiteLines( + new BufferedReader(new StringReader(testSuite.toString())),numericFields); + List actualResult = new ArrayList<>(); + + testSuiteParser.handleEndOfVerifyStatement(actualResult, Constants.EMPTY_STRING, Constants.EMPTY_STRING); + // the following assert must not be performed! + fail("An exception should have been thrown :("); + } catch (VerifyReferencesNonexistentMockException mockException) { + assertNotNull(mockException); + assertTrue(mockException.getMessage().indexOf("nonexistent mock")>0); + } + } + + + @Test + public void verify_call_mock_with_qualified_arguments_mixed() { + testSuite.append(" TESTSUITE \"call_mock_with_arguments\""); + testSuite.append(" TESTCASE \"qualified_arguments and not qualified\""); + testSuite.append(" MOCK CALL 'PROG1' USING this in this-place, BY CONTENT other in this-place last-one"); + testSuite.append(" MOVE \"something\" TO this"); + testSuite.append(" MOVE \"something else\" TO other"); + testSuite.append(" END-MOCK"); + testSuite.append(" PERFORM 000-START"); + testSuite.append(" VERIFY CALL 'PROG1' USING"); + testSuite.append(" this in new-place BY CONTENT other in new-place last-one"); + testSuite.append(" HAPPENED ONCE"); + + List expectedResult = new ArrayList<>(); + expectedResult.add(" MOVE 1 TO UT-1-1-1-MOCK-EXPECTED"); + expectedResult.add(" MOVE UT-1-1-1-MOCK-COUNT TO UT-ACTUAL-ACCESSES"); + expectedResult.add(" MOVE UT-1-1-1-MOCK-EXPECTED TO UT-EXPECTED-ACCESSES"); + expectedResult.add(" MOVE UT-1-1-1-MOCK-NAME TO UT-MOCK-OPERATION"); + expectedResult.add(" SET UT-VERIFY-EXACT TO TRUE"); + expectedResult.add(" ADD 1 TO UT-TEST-CASE-COUNT"); + expectedResult.add(" PERFORM UT-ASSERT-ACCESSES"); + try { + testSuiteParser.getParsedTestSuiteLines( + new BufferedReader(new StringReader(testSuite.toString())),numericFields); + List actualResult = new ArrayList<>(); + + testSuiteParser.handleEndOfVerifyStatement(actualResult, Constants.EMPTY_STRING, Constants.EMPTY_STRING); + // the following assert must not be performed! + fail("An exception should have been thrown :("); + } catch (VerifyReferencesNonexistentMockException mockException) { + assertNotNull(mockException); + assertTrue(mockException.getMessage().indexOf("nonexistent mock")>0); + } + } + @Test public void it_throws_if_the_mock_that_verify_references_does_not_exist() { testSuite.append(" TESTSUITE \"Name of test suite\""); @@ -715,7 +851,7 @@ public void it_parses_testsuite_with_sequnece_area() { new BufferedReader(new StringReader(testSuite.toString())), numericFields); List actualResult = new ArrayList<>(); - testSuiteParser.handleEndOfVerifyStatement(actualResult); + testSuiteParser.handleEndOfVerifyStatement(actualResult,Constants.EMPTY_STRING,Constants.EMPTY_STRING); assertEquals(expectedResult, actualResult); } @@ -745,4 +881,10 @@ public void it_inserts_start_and_end_tag_as_comments() throws IOException { assertEquals(expectedStartTag, actualResult.get(0)); assertEquals(expectedEndTag, actualResult.get(actualResult.size() - 1)); } + + @Test + public void test_stop_method() throws IOException { + assertTrue(testSuiteParser.containStopValue("string,")); + assertFalse(testSuiteParser.containStopValue("string")); + } } From 01cab97a2a7945457665eed442b0a8c97adc974a Mon Sep 17 00:00:00 2001 From: "Thomas N. Kramer" Date: Tue, 15 Aug 2023 10:40:16 +0200 Subject: [PATCH 122/180] MOCK enhanced fix, to handle both in and of in a test case Signed-off-by: Thomas N. Kramer --- .../cobolcheck/features/testSuiteParser/TestSuiteParser.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index 60f2c6d3..3e11d99f 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -646,7 +646,7 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, if (cobolTokenIsFieldName){ fieldNameForExpect += Constants.SPACE + testSuiteToken + Constants.SPACE; expectQualifiedName = true; - summizedTokensForArgument += Constants.SPACE + testSuiteToken; + summizedTokensForArgument += Constants.SPACE + Constants.IN_KEYWORD; lastAddedTokenToArgumentIsQualifier = true; } From 4b578902363d5a0b8ba46751455ec554646cb9a3 Mon Sep 17 00:00:00 2001 From: "Thomas N. Kramer" Date: Tue, 15 Aug 2023 12:03:03 +0200 Subject: [PATCH 123/180] MOCK enhanced tests for this cobol check enhancement Signed-off-by: Thomas N. Kramer --- src/main/cobol/MOCK.CBL | 132 +++++++++++++++++++++++++++ src/test/cobol/MOCK/MockCallTest.cut | 32 +++++++ 2 files changed, 164 insertions(+) create mode 100644 src/main/cobol/MOCK.CBL create mode 100644 src/test/cobol/MOCK/MockCallTest.cut diff --git a/src/main/cobol/MOCK.CBL b/src/main/cobol/MOCK.CBL new file mode 100644 index 00000000..58a3d2e3 --- /dev/null +++ b/src/main/cobol/MOCK.CBL @@ -0,0 +1,132 @@ + IDENTIFICATION DIVISION. + PROGRAM-ID. MOCK. + /**************************************************************** + * Program to exercise different mock statements and edge cases. + ***************************************************************** + ENVIRONMENT DIVISION. + INPUT-OUTPUT SECTION. + FILE-CONTROL. + DATA DIVISION. + WORKING-STORAGE SECTION. + 01 FILLER. + 05 VALUE-1 PIC X(80). + 05 VALUE-2 PIC X(80). + 05 VALUE-3 PIC X(80). + 05 TEMP PIC X(80). + + 01 COBOL-structure. + 05 ACTION-PARAM pic x(1). + 05 book-PARAM pic x(1). + 05 output-value pic x(12). + + PROCEDURE DIVISION. + + 000-START SECTION. + MOVE "Value1" to VALUE-1 + MOVE "Value2" to VALUE-2 + / + PERFORM 100-WELCOME + PERFORM 200-GOODBYE + / + PERFORM 300-CHANGE-1 + PERFORM 400-CHANGE-2 + PERFORM 500-SWITCH + PERFORM 999-END + EXIT SECTION. + /********************** + 100-WELCOME SECTION + . + MOVE "Hello" to VALUE-1 + MOVE "Hi" to VALUE-2 + EXIT SECTION + . + /************************* + * KALD KTOMHDR, HENT OP + ************************** + 200-GOODBYE SECTION. + * Comment for testing purposes + MOVE "Bye" to VALUE-1 + MOVE "See you" to VALUE-2 + EXIT SECTION + . + + 300-CHANGE-1 + *Comment for testing purposes + . + EVALUATE VALUE-1 + WHEN "Hello" + MOVE "Bye" TO VALUE-1 + WHEN "Bye" + MOVE "Hello" TO VALUE-1 + WHEN OTHER + EXIT PARAGRAPH + END-EVALUATE. + /************************* + * KALD KTOMHDR, HENT OP + ************************** + + 400-CHANGE-2 SECTION + . + EVALUATE VALUE-2 + WHEN "Hi" + MOVE "See you" TO VALUE-2 + EXIT SECTION + WHEN OTHER + MOVE "Hi" TO VALUE-2 + EXIT SECTION + END-EVALUATE + . + /************************* + * KALD KTOMHDR, HENT OP + ************************** + + 410-PLACEHOLDER SECTION. + CONTINUE + . + + 500-SWITCH. + MOVE VALUE-2 TO TEMP + MOVE VALUE-1 TO VALUE-2 + MOVE TEMP TO VALUE-1. + + 600-MAKE-CALL. + MOVE "arg1" to VALUE-1 + MOVE "arg2" to VALUE-2 + CALL 'PROG1' + . + + 610-CALL-WITH-STRUCTURE. + MOVE "1" to ACTION-PARAM + MOVE "2" to BOOK-PARAM + MOVE "3" to OUTPUT-VALUE + CALL 'MYCOBOL' USING ACTION-PARAM, + BOOK-PARAM IN COBOL-STRUCTURE, + output-value + END-CALL + MOVE output-value TO VALUE-1 + . + + 700-MAKE-CALL. + MOVE "arg1" to VALUE-1 + MOVE "arg2" to VALUE-2 + CALL VALUE-2 USING VALUE-1 + CALL VALUE-2 + END-CALL. + + 800-MAKE-CALL. + MOVE "arg1" to VALUE-1 + MOVE "arg2" to VALUE-2 + MOVE "arg3" to VALUE-3 + CALL 'PROG3' USING + BY CONTENT VALUE-1, + BY VALUE VALUE-2, + VALUE-3. + CALL 'PROG3' USING + BY CONTENT VALUE-1, + BY VALUE VALUE-2, + VALUE-3 + CALL 'PROG3' USING VALUE-1. + + 999-END. + GOBACK + . \ No newline at end of file diff --git a/src/test/cobol/MOCK/MockCallTest.cut b/src/test/cobol/MOCK/MockCallTest.cut new file mode 100644 index 00000000..78e9d41d --- /dev/null +++ b/src/test/cobol/MOCK/MockCallTest.cut @@ -0,0 +1,32 @@ + * Test for mocking call statements + + TestSuite "validate call mocking" + TestCase "parameters with IN are recognized correctly" + MOVE SPACES TO OUTPUT-VALUE + MOCK CALL 'MYCOBOL' USING ACTION-PARAM, + BOOK-PARAM in COBOL-STRUCTURE, + OUTPUT-VALUE. + MOVE "MOCKED" TO OUTPUT-VALUE + END-MOCK + PERFORM 610-CALL-WITH-STRUCTURE + EXPECT OUTPUT-VALUE TO BE "MOCKED" + VERIFY CALL 'MYCOBOL' USING ACTION-PARAM, + BOOK-PARAM in COBOL-STRUCTURE, + OUTPUT-VALUE + HAPPENED ONCE + + TestCase "parameters with OF are recognized correctly" + MOVE SPACES TO OUTPUT-VALUE + MOCK CALL 'MYCOBOL' USING ACTION-PARAM, + BOOK-PARAM OF COBOL-STRUCTURE, + OUTPUT-VALUE. + MOVE "MOCKED" TO OUTPUT-VALUE + END-MOCK + PERFORM 610-CALL-WITH-STRUCTURE + EXPECT OUTPUT-VALUE TO BE "MOCKED" + + VERIFY CALL 'MYCOBOL' USING ACTION-PARAM, + BOOK-PARAM in COBOL-STRUCTURE, + OUTPUT-VALUE + HAPPENED ONCE + . From 4780ae5816eee147c59b4d051c7c479a1ddd372f Mon Sep 17 00:00:00 2001 From: issacto Date: Tue, 15 Aug 2023 12:57:46 +0100 Subject: [PATCH 124/180] fix syntax bug Signed-off-by: issacto --- vs code extension/client/src/services/CobolCheckInputParser.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/vs code extension/client/src/services/CobolCheckInputParser.ts b/vs code extension/client/src/services/CobolCheckInputParser.ts index 6ad52685..64ef822d 100644 --- a/vs code extension/client/src/services/CobolCheckInputParser.ts +++ b/vs code extension/client/src/services/CobolCheckInputParser.ts @@ -2,7 +2,7 @@ import * as vscode from 'vscode'; const testCaseRegex = /^\s*(TESTCASE)\s*(.*)/i; // const testRegex = /^\s*(Expect)\s*(.*)\s*(not?)\s(>|<|to\s*be)\s*(.*)\s*/i; -const testSuiteRegex = /^\s*(TESTSUITE)\s*(.*)/; +const testSuiteRegex = /^\s*(TESTSUITE)\s*(.*)/i; export const parseMarkdown = (text: string, events: { onTest(range: vscode.Range, name: string): void; @@ -26,6 +26,7 @@ export const parseMarkdown = (text: string, events: { const testSuite = testSuiteRegex.exec(line); if (testSuite) { var [,pounds, name] = testSuite; + name = name.replace(/['"]+/g, ''); const range = new vscode.Range(new vscode.Position(lineNo, line.indexOf(pounds)), new vscode.Position(lineNo, line.indexOf(name) + name.length)); events.onHeading(range, name, 1); } From 1827f12864f5725c791fb228471c8fe36befe81f Mon Sep 17 00:00:00 2001 From: Akash Kumar Date: Fri, 18 Aug 2023 02:36:09 +0530 Subject: [PATCH 125/180] Add duplication check for test suites and test cases --- .../TestCaseAlreadyExistsException.java | 13 ++++++++++ .../TestSuiteAlreadyExistsException.java | 13 ++++++++++ .../testSuiteParser/TestSuiteParser.java | 19 +++++++++++++- .../cobolcheck/messages/messages.properties | 4 +-- .../TestSuiteParserParsingTest.java | 25 +++++++++++++++++++ 5 files changed, 71 insertions(+), 3 deletions(-) create mode 100644 src/main/java/org/openmainframeproject/cobolcheck/exceptions/TestCaseAlreadyExistsException.java create mode 100644 src/main/java/org/openmainframeproject/cobolcheck/exceptions/TestSuiteAlreadyExistsException.java diff --git a/src/main/java/org/openmainframeproject/cobolcheck/exceptions/TestCaseAlreadyExistsException.java b/src/main/java/org/openmainframeproject/cobolcheck/exceptions/TestCaseAlreadyExistsException.java new file mode 100644 index 00000000..f2cf9e83 --- /dev/null +++ b/src/main/java/org/openmainframeproject/cobolcheck/exceptions/TestCaseAlreadyExistsException.java @@ -0,0 +1,13 @@ +package org.openmainframeproject.cobolcheck.exceptions; + +public class TestCaseAlreadyExistsException extends RuntimeException { + public TestCaseAlreadyExistsException(String message) { + super(message); + } + public TestCaseAlreadyExistsException(Throwable cause) { + super(cause); + } + public TestCaseAlreadyExistsException(String message, Throwable cause) { + super(message, cause); + } +} \ No newline at end of file diff --git a/src/main/java/org/openmainframeproject/cobolcheck/exceptions/TestSuiteAlreadyExistsException.java b/src/main/java/org/openmainframeproject/cobolcheck/exceptions/TestSuiteAlreadyExistsException.java new file mode 100644 index 00000000..5d265571 --- /dev/null +++ b/src/main/java/org/openmainframeproject/cobolcheck/exceptions/TestSuiteAlreadyExistsException.java @@ -0,0 +1,13 @@ +package org.openmainframeproject.cobolcheck.exceptions; + +public class TestSuiteAlreadyExistsException extends RuntimeException { + public TestSuiteAlreadyExistsException(String message) { + super(message); + } + public TestSuiteAlreadyExistsException(Throwable cause) { + super(cause); + } + public TestSuiteAlreadyExistsException(String message, Throwable cause) { + super(message, cause); + } +} \ No newline at end of file diff --git a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java index 278d8504..81a3fa18 100644 --- a/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java +++ b/src/main/java/org/openmainframeproject/cobolcheck/features/testSuiteParser/TestSuiteParser.java @@ -10,6 +10,8 @@ import java.util.ArrayList; import java.util.List; import java.util.Locale; +import java.util.HashMap; +import java.util.HashSet; /** * Parses the concatenated test suite and writes Cobol test code to the output @@ -22,6 +24,7 @@ public class TestSuiteParser { private final KeywordExtractor keywordExtractor; private TestSuiteWritingStyle testSuiteWritingStyle; private List testSuiteTokens; + private HashMap> testNamesHierarchy; private String currentTestSuiteLine = ""; private int fileLineNumber = 0; private int fileLineIndexNumber = 0; @@ -158,6 +161,7 @@ public TestSuiteParser(KeywordExtractor keywordExtractor, MockRepository mockRep this.beforeAfterRepo = beforeAfterRepo; this.testSuiteErrorLog = testSuiteErrorLog; testSuiteTokens = new ArrayList<>(); + testNamesHierarchy = new HashMap>(); emptyTestSuite = true; testCodePrefix = Config.getString(Constants.COBOLCHECK_PREFIX_CONFIG_KEY, Constants.DEFAULT_COBOLCHECK_PREFIX); initializeCobolStatement(); @@ -177,7 +181,6 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, numericFields = numericFieldsList; String testSuiteToken = getNextTokenFromTestSuite(testSuiteReader); while (testSuiteToken != null) { - if (!testSuiteToken.startsWith(Constants.QUOTE) && !testSuiteToken.startsWith(Constants.APOSTROPHE)) { testSuiteToken = testSuiteToken.toUpperCase(Locale.ROOT); } @@ -405,6 +408,10 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, if (expectTestsuiteName) { expectTestsuiteName = false; currentTestSuiteName = testSuiteToken; + if (testNamesHierarchy.containsKey(currentTestSuiteName)) { + throw new TestSuiteAlreadyExistsException(Messages.get("ERR031", currentTestSuiteName)); + } + testNamesHierarchy.put(currentTestSuiteName, new HashSet()); RunInfo.addTestSuiteNameToPathMapKeyValuePair(currentTestSuiteName, currentTestSuiteRealFile); addTestSuiteNamelines(currentTestSuiteName, parsedTestSuiteLines); initializeCobolStatement(); @@ -412,6 +419,16 @@ public List getParsedTestSuiteLines(BufferedReader testSuiteReader, if (expectTestcaseName) { expectTestcaseName = false; currentTestCaseName = testSuiteToken; + HashSet testCaseSet = testNamesHierarchy.get(currentTestSuiteName); + if (testCaseSet != null) { + if(testCaseSet.contains(currentTestCaseName)) { + throw new TestCaseAlreadyExistsException(Messages.get("ERR032", currentTestCaseName, + currentTestSuiteName)); + } + else { + testCaseSet.add(currentTestCaseName); + } + } addTestCaseNameLines(currentTestCaseName, parsedTestSuiteLines); initializeCobolStatement(); } diff --git a/src/main/resources/org/openmainframeproject/cobolcheck/messages/messages.properties b/src/main/resources/org/openmainframeproject/cobolcheck/messages/messages.properties index 40705dca..dfe7cdd8 100644 --- a/src/main/resources/org/openmainframeproject/cobolcheck/messages/messages.properties +++ b/src/main/resources/org/openmainframeproject/cobolcheck/messages/messages.properties @@ -29,9 +29,9 @@ ERR026 = ERR026: Constructor of Constants class should never be called. ERR027 = ERR027: NumericFields.dataTypeOf() was called with empty fieldName. ERR028 = ERR028: NumericFields.setDataTypeOf() was called with empty fieldName. ERR029 = ERR029: NumericFields.setDataTypeOf() was called with null dataType. - ERR030 = ERR030: Command line missing program argument '-p programName' . - +ERR031 = ERR031: A test suite with the name %1$s already exists. +ERR032 = ERR032: A test case with the name %1$s already exists in the test suite %2$s. WRN001 = WRN001: No test suite directory for program %1$s was found under directory %2$s. WRN002 = WRN002: No test suite files were found under directory %1$s. diff --git a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteParserParsingTest.java b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteParserParsingTest.java index 0fe24d18..2706524b 100644 --- a/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteParserParsingTest.java +++ b/src/test/java/org/openmainframeproject/cobolcheck/TestSuiteParserParsingTest.java @@ -1,5 +1,7 @@ package org.openmainframeproject.cobolcheck; +import org.openmainframeproject.cobolcheck.exceptions.TestSuiteAlreadyExistsException; +import org.openmainframeproject.cobolcheck.exceptions.TestCaseAlreadyExistsException; import org.openmainframeproject.cobolcheck.exceptions.VerifyReferencesNonexistentMockException; import org.openmainframeproject.cobolcheck.features.testSuiteParser.*; import org.openmainframeproject.cobolcheck.features.writer.CobolWriter; @@ -56,6 +58,29 @@ void commonSetup() { cobolWriter = new CobolWriter(mockTestProgramSource); numericFields = new NumericFields(); } + + @Test + public void multiple_testsuites_with_same_name_exists_for_a_program() throws IOException { + String str1 = " TESTSUITE \"Name of test suite\""; + String str2 = " TESTSUITE \"Name of test suite\""; + + Mockito.when(mockedReader.readLine()).thenReturn(str1, str2, null); + + Throwable ex = assertThrows(TestSuiteAlreadyExistsException.class, () -> testSuiteParser.getParsedTestSuiteLines(mockedReader, numericFields)); + assertEquals("ERR031: A test suite with the name \"Name of test suite\" already exists.", ex.getMessage()); + } + + @Test + public void multiple_testcases_with_same_name_exists_for_a_testsuite() throws IOException { + String str1 = " TESTSUITE \"Name of test suite\""; + String str2 = " TESTCASE \"Name of test case\""; + String str3 = " TESTCASE \"Name of test case\""; + + Mockito.when(mockedReader.readLine()).thenReturn(str1, str2, str3, null); + + Throwable ex = assertThrows(TestCaseAlreadyExistsException.class, () -> testSuiteParser.getParsedTestSuiteLines(mockedReader, numericFields)); + assertEquals("ERR032: A test case with the name \"Name of test case\" already exists in the test suite \"Name of test suite\".", ex.getMessage()); + } @Test public void it_stores_the_name_of_the_test_suite_after_detecting_the_TESTSUITE_keyword() { From b62d21302a91edb924d4e683071e9830a333c3ba Mon Sep 17 00:00:00 2001 From: issacto Date: Fri, 18 Aug 2023 16:56:59 +0100 Subject: [PATCH 126/180] add test tree -1 Signed-off-by: issacto --- vs code extension/client/src/extension.ts | 179 +++++++++++++----- .../src/services/CobolCheckInputParser.ts | 41 ++-- .../client/src/services/TestTree.ts | 46 +++-- vs code extension/client/test.cut | 25 +++ .../client/testFixture copy/alpha.cut | 61 ++++++ .../client/testFixture copy/alpha/alpha.cut | 61 ++++++ .../client/testFixture copy/errorfree.cut | 25 +++ .../testFixture copy/missingdelimiters.cut | 11 ++ .../testFixture copy/missingtestsuite.cut | 18 ++ .../client/testFixture copy/syntaxerror.cut | 9 + .../testFixture/alpha/alpha copy/alpha.cut | 61 ++++++ .../client/testFixture/alpha/alpha.cut | 61 ++++++ .../client/testFixture/errorfree.cut | 5 + 13 files changed, 527 insertions(+), 76 deletions(-) create mode 100644 vs code extension/client/test.cut create mode 100644 vs code extension/client/testFixture copy/alpha.cut create mode 100644 vs code extension/client/testFixture copy/alpha/alpha.cut create mode 100644 vs code extension/client/testFixture copy/errorfree.cut create mode 100644 vs code extension/client/testFixture copy/missingdelimiters.cut create mode 100644 vs code extension/client/testFixture copy/missingtestsuite.cut create mode 100644 vs code extension/client/testFixture copy/syntaxerror.cut create mode 100644 vs code extension/client/testFixture/alpha/alpha copy/alpha.cut create mode 100644 vs code extension/client/testFixture/alpha/alpha.cut diff --git a/vs code extension/client/src/extension.ts b/vs code extension/client/src/extension.ts index e2193f5c..4c951d08 100644 --- a/vs code extension/client/src/extension.ts +++ b/vs code extension/client/src/extension.ts @@ -15,7 +15,7 @@ import { startCutLanguageClientServer, stopCutLanguageClientServer } from './ser import { ResultWebView } from './services/ResultWebView'; import { handleCobolCheckOut } from './Helpers/ExtensionHelper'; import path = require('path'); -import { getContentFromFilesystem, MarkdownTestData, TestCase, testData, TestFile } from "./services/testTree"; +import { getContentFromFilesystem, MarkdownTestData, TestCase, testData, TestFile, TestHeading } from "./services/TestTree"; let externalVsCodeInstallationDir = vscode.extensions.getExtension("openmainframeproject.cobol-check-extension").extensionPath; @@ -91,52 +91,62 @@ export function activate(context: ExtensionContext) { return startTestRun(request); } - const l = fileChangedEmitter.event(uri => startTestRun( + const l = fileChangedEmitter.event(uri => { + + return startTestRun( + new vscode.TestRunRequest2( [getOrCreateFile(ctrl, uri).file], undefined, request.profile, true ), - )); + )}); cancellation.onCancellationRequested(() => l.dispose()); }; const startTestRun = (request: vscode.TestRunRequest) => { - const queue: { test: vscode.TestItem; data: TestCase }[] = []; + const queue: { test: vscode.TestItem; data: TestCase | TestHeading }[] = []; const run = ctrl.createTestRun(request); // map of file uris to statements on each line: const coveredLines = new Map(); const discoverTests = async (tests: Iterable) => { - for (const test of tests) { - if (request.exclude?.includes(test)) { - continue; - } - - const data = testData.get(test); - if (data instanceof TestCase) { - run.enqueued(test); - queue.push({ test, data }); - } else { - if (data instanceof TestFile && !data.didResolve) { - await data.updateFromDisk(ctrl, test); + if(tests){ + for (const test of tests) { + if (request.exclude?.includes(test)) { + continue; } - await discoverTests(gatherTestItems(test.children)); - } + const data = testData.get(test); + if (data instanceof TestCase + || (data instanceof TestHeading && test.children.size==0) + ) { + run.enqueued(test); + queue.push({ test, data }); + } else { + if (data instanceof TestFile ) { + await data.updateFromDisk(ctrl, test); + } + + await discoverTests(gatherTestItems(test)); + } - if (test.uri && !coveredLines.has(test.uri.toString())) { - try { - const lines = (await getContentFromFilesystem(test.uri)).split('\n'); - coveredLines.set( - test.uri.toString(), - lines.map((lineText, lineNo) => - lineText.trim().length ? new vscode.StatementCoverage(0, new vscode.Position(lineNo, 0)) : undefined - ) - ); - } catch { - // ignored + if (test.uri && !coveredLines.has(test.uri.toString())) { + try { + const lines = (await getContentFromFilesystem(test.uri,true)) + if(lines!=""){ + const lineArr = lines.split('\n'); + coveredLines.set( + test.uri.toString(), + lineArr.map((lineText, lineNo) => + lineText.trim().length ? new vscode.StatementCoverage(0, new vscode.Position(lineNo, 0)) : undefined + ) + ); + } + } catch { + // ignored + } } } } @@ -151,7 +161,7 @@ export function activate(context: ExtensionContext) { run.started(test); await data.run(test, run); } - + const lineNo = test.range!.start.line; const fileCoverage = coveredLines.get(test.uri!.toString()); if (fileCoverage) { @@ -160,7 +170,6 @@ export function activate(context: ExtensionContext) { run.appendOutput(`Completed ${test.id}\r\n`); } - run.end(); }; @@ -180,7 +189,7 @@ export function activate(context: ExtensionContext) { }, }; - discoverTests(request.include ?? gatherTestItems(ctrl.items)).then(runTestQueue); + discoverTests(request.include ?? gatherTestItemsFromCollection(ctrl.items)).then(runTestQueue); }; ctrl.refreshHandler = async () => { @@ -205,7 +214,6 @@ export function activate(context: ExtensionContext) { if (e.uri.scheme !== 'file') { return; } - if (!e.uri.path.endsWith('.cut')) { return; } @@ -228,26 +236,108 @@ export function deactivate() { stopCutLanguageClientServer(); } +function createDirItems( controller:vscode.TestController, uri: vscode.Uri){ + + const dirArr = vscode.workspace.asRelativePath(uri.fsPath).split("/") + const rootDir = uri.fsPath.replace(vscode.workspace.asRelativePath(uri.fsPath),"") + const rootUri = rootDir+dirArr[0] + let tmpUri = vscode.Uri.file(rootUri); + + var file :vscode.TestItem = null; + controller.createTestItem + var data = null + if(!controller.items.get(rootUri)){ + file = controller.createTestItem(rootUri, dirArr[0], tmpUri); + controller.items.add(file); + data = new TestFile() + testData.set(file, data); + file.canResolveChildren = true; + } + else{ + file = controller.items.get(rootUri) + data = testData.get(file) + } + + + var prevFile: vscode.TestItem = file + var tmpDir = rootUri + + for(var i =1;i {items=items.concat(gatherTestItems(item))}); + return items; + } + else if(data instanceof TestHeading && !test.children){ + items.push(test) + return items; + }else if(data instanceof TestHeading && test.children){ + test.children.forEach(item => items.push(item)); + return items; + } + else if(data instanceof TestCase){ + items.push(test); + return items; + } + return items; - file.canResolveChildren = true; - return { file, data }; } -function gatherTestItems(collection: vscode.TestItemCollection) { - const items: vscode.TestItem[] = []; - collection.forEach(item => items.push(item)); +function gatherTestItemsFromCollection(collection: vscode.TestItemCollection) { + var items: vscode.TestItem[] = []; + collection.forEach(item => { + items = items.concat(gatherTestItems(item)) + }); return items; } @@ -270,6 +360,7 @@ async function findInitialFiles(controller: vscode.TestController, pattern: vsco function startWatchingWorkspace(controller: vscode.TestController, fileChangedEmitter: vscode.EventEmitter ) { return getWorkspaceTestPatterns().map(({ workspaceFolder, pattern }) => { + const watcher = vscode.workspace.createFileSystemWatcher(pattern); watcher.onDidCreate(uri => { diff --git a/vs code extension/client/src/services/CobolCheckInputParser.ts b/vs code extension/client/src/services/CobolCheckInputParser.ts index 64ef822d..27311aa9 100644 --- a/vs code extension/client/src/services/CobolCheckInputParser.ts +++ b/vs code extension/client/src/services/CobolCheckInputParser.ts @@ -8,27 +8,30 @@ export const parseMarkdown = (text: string, events: { onTest(range: vscode.Range, name: string): void; onHeading(range: vscode.Range, name: string, depth: number): void; }) => { - const lines = text.split('\n'); - - for (let lineNo = 0; lineNo < lines.length; lineNo++) { - const line = lines[lineNo]; - - const testCase = testCaseRegex.exec(line); - if (testCase) { - var [,pounds, name] = testCase; - name = name.replace(/['"]+/g, ''); - const range = new vscode.Range(new vscode.Position(lineNo, 0), new vscode.Position(lineNo, testCase[0].length)); - events.onTest(range, name); - continue; - } + if(text!=null){ - const testSuite = testSuiteRegex.exec(line); - if (testSuite) { - var [,pounds, name] = testSuite; - name = name.replace(/['"]+/g, ''); - const range = new vscode.Range(new vscode.Position(lineNo, line.indexOf(pounds)), new vscode.Position(lineNo, line.indexOf(name) + name.length)); - events.onHeading(range, name, 1); + const lines = text.split('\n'); + for (let lineNo = 0; lineNo < lines.length; lineNo++) { + const line = lines[lineNo]; + + const testCase = testCaseRegex.exec(line); + if (testCase) { + var [,pounds, name] = testCase; + name = name.replace(/['"]+/g, ''); + const range = new vscode.Range(new vscode.Position(lineNo, 0), new vscode.Position(lineNo, testCase[0].length)); + events.onTest(range, name); + continue; + } + + + const testSuite = testSuiteRegex.exec(line); + if (testSuite) { + var [,pounds, name] = testSuite; + name = name.replace(/['"]+/g, ''); + const range = new vscode.Range(new vscode.Position(lineNo, line.indexOf(pounds)), new vscode.Position(lineNo, line.indexOf(name) + name.length)); + events.onHeading(range, name, 1); + } } } }; diff --git a/vs code extension/client/src/services/TestTree.ts b/vs code extension/client/src/services/TestTree.ts index bab55d08..25d4cd32 100644 --- a/vs code extension/client/src/services/TestTree.ts +++ b/vs code extension/client/src/services/TestTree.ts @@ -1,19 +1,27 @@ import { TextDecoder } from 'util'; import * as vscode from 'vscode'; import { parseMarkdown } from './CobolCheckInputParser'; +import internal = require('stream'); +import { integer } from 'vscode-languageclient'; const textDecoder = new TextDecoder('utf-8'); export type MarkdownTestData = TestFile | TestHeading | TestCase; +// only for the root files export const testData = new WeakMap(); let generationCounter = 0; -export const getContentFromFilesystem = async (uri: vscode.Uri) => { +export const getContentFromFilesystem = async (uri: vscode.Uri, isFile) => { try { - const rawContent = await vscode.workspace.fs.readFile(uri); - return textDecoder.decode(rawContent); + // vscode.workspace.fs.readDirectory + if(isFile){ + const rawContent = await vscode.workspace.fs.readFile(uri); + return textDecoder.decode(rawContent); + } + return null + } catch (e) { console.warn(`Error providing tests for ${uri.fsPath}`, e); return ''; @@ -25,9 +33,11 @@ export class TestFile { public async updateFromDisk(controller: vscode.TestController, item: vscode.TestItem) { try { - const content = await getContentFromFilesystem(item.uri!); - item.error = undefined; - this.updateFromContents(controller, content, item); + if(item.children.size==0){ + var content= await getContentFromFilesystem(item.uri!, (item.children.size==0)); + item.error = undefined; + this.updateFromContents(controller, content, item, item.children.size); + } } catch (e) { item.error = (e as Error).stack; } @@ -37,7 +47,7 @@ export class TestFile { * Parses the tests from the input text, and updates the tests contained * by this file to be those from the text, */ - public updateFromContents(controller: vscode.TestController, content: string, item: vscode.TestItem) { + public updateFromContents(controller: vscode.TestController, content: string, item: vscode.TestItem, fileDepth: integer) { const ancestors = [{ item, children: [] as vscode.TestItem[] }]; const thisGeneration = generationCounter++; this.didResolve = true; @@ -48,14 +58,12 @@ export class TestFile { finished.item.children.replace(finished.children); } }; - + parseMarkdown(content, { onTest: (range, label) => { const parent = ancestors[ancestors.length - 1]; const data = new TestCase(label); const id = `${item.uri}/${data.getLabel()}`; - - const tcase = controller.createTestItem(id, data.getLabel(), item.uri); testData.set(tcase, data); tcase.range = range; @@ -66,7 +74,6 @@ export class TestFile { ascend(depth); const parent = ancestors[ancestors.length - 1]; const id = `${item.uri}/${name}`; - const thead = controller.createTestItem(id, name, item.uri); thead.range = range; testData.set(thead, new TestHeading(thisGeneration)); @@ -75,12 +82,24 @@ export class TestFile { }, }); - ascend(0); // finish and assign children for all remaining items + ascend(fileDepth) + // if(isFile) ascend(1) + // else ascend(0) // finish and assign children for all remaining items } + + + } export class TestHeading { - constructor(public generation: number) { } + constructor(public generation: number) { + } + async run(item: vscode.TestItem, options: vscode.TestRun): Promise { + const start = Date.now(); + await new Promise(resolve => setTimeout(resolve, 1000 + Math.random() * 1000)); + const duration = Date.now() - start; + options.passed(item, duration); + } } type Operator = '+' | '-' | '*' | '/'; @@ -127,3 +146,4 @@ export class TestCase { // } // } } + diff --git a/vs code extension/client/test.cut b/vs code extension/client/test.cut new file mode 100644 index 00000000..261f924f --- /dev/null +++ b/vs code extension/client/test.cut @@ -0,0 +1,25 @@ + TESTSUITE 'Test AARM503 sections' + + TestCase "Equality with an alphanumeric literal using TO BE" + move "value1" to ws-field-1 + Expect ws-field-1 to be "value1" + + + BEFORE-EACH + MOVE 0 TO STATU-KD IN AARM503-PARM + END-BEFORE + + MOCK SECTION 911-PUT-HARD-ERROR + CONTINUE + END-MOCK + + MOCK PARAGRAPH 300-CHANGE-1 + EVALUATE VALUE-1 + WHEN "Hello" + MOVE "MOCKED" TO VALUE-1 + WHEN OTHER + MOVE "mocked" TO VALUE-1 + END-EVALUATE + END-MOCK + + \ No newline at end of file diff --git a/vs code extension/client/testFixture copy/alpha.cut b/vs code extension/client/testFixture copy/alpha.cut new file mode 100644 index 00000000..8074bb50 --- /dev/null +++ b/vs code extension/client/testFixture copy/alpha.cut @@ -0,0 +1,61 @@ + TestSuite "Tests of alphanumeric expectations" + + TestCase "Equality with an alphanumeric literal using TO BE" + move "value1" to ws-field-1 + Expect ws-field-1 to be "value1" + + TestCase "Equality with an alphanumeric literal using TO EQUAL" + move "value2" to ws-field-1 + Expect ws-field-1 to equal "value2" + + TestCase "Equality with an alphanumeric literal using '='" + move "value3" to ws-field-1 + Expect ws-field-1 = "value3" + + TestCase "Equality with an alphanumeric literal and reference modification" + move "Hello, World!" to ws-field-2 + Expect ws-field-2(8:5) to be "World" + + TestCase "Non-equality with an alphanumeric literal using TO BE" + move "value4" to ws-field-1 + Expect ws-field-1 not to be "value1" + + TestCase "Non-equality with an alphanumeric literal using TO EQUAL" + move "value5" to ws-field-1 + Expect ws-field-1 not to equal "value1" + + TestCase "Non-equality with an alphanumeric literal using '!='" + move "value6" to ws-field-1 + Expect ws-field-1 != "value1" + + TestCase "Non-equality with an alphanumeric literal and reference modification" + move "Hello, World!" to ws-field-2 + Expect ws-field-2(8:6) not to be "World" + + TestCase "Greater-than sign with an alphanumeric literal" + move "Beta" to ws-field-1 + move "Alpha" to ws-field-2 + Expect ws-field-1 > ws-field-2 + + TestCase "Less-than sign with an alphanumeric literal" + move "Beta" to ws-field-1 + move "Alpha" to ws-field-2 + Expect ws-field-2 < ws-field-1 + + TestCase "Not greater-than sign with an alphanumeric literal" + move "Beta" to ws-field-1 + move "Alpha" to ws-field-2 + Expect ws-field-2 not > ws-field-1 + + TestCase "Not less-than sign with an alphanumeric literal" + move "Beta" to ws-field-1 + move "Alpha" to ws-field-2 + Expect ws-field-1 not < ws-field-2 + + TestCase "Display numeric" + move 6 to ws-display-numeric + expect ws-display-numeric to be 6 + + + + diff --git a/vs code extension/client/testFixture copy/alpha/alpha.cut b/vs code extension/client/testFixture copy/alpha/alpha.cut new file mode 100644 index 00000000..8074bb50 --- /dev/null +++ b/vs code extension/client/testFixture copy/alpha/alpha.cut @@ -0,0 +1,61 @@ + TestSuite "Tests of alphanumeric expectations" + + TestCase "Equality with an alphanumeric literal using TO BE" + move "value1" to ws-field-1 + Expect ws-field-1 to be "value1" + + TestCase "Equality with an alphanumeric literal using TO EQUAL" + move "value2" to ws-field-1 + Expect ws-field-1 to equal "value2" + + TestCase "Equality with an alphanumeric literal using '='" + move "value3" to ws-field-1 + Expect ws-field-1 = "value3" + + TestCase "Equality with an alphanumeric literal and reference modification" + move "Hello, World!" to ws-field-2 + Expect ws-field-2(8:5) to be "World" + + TestCase "Non-equality with an alphanumeric literal using TO BE" + move "value4" to ws-field-1 + Expect ws-field-1 not to be "value1" + + TestCase "Non-equality with an alphanumeric literal using TO EQUAL" + move "value5" to ws-field-1 + Expect ws-field-1 not to equal "value1" + + TestCase "Non-equality with an alphanumeric literal using '!='" + move "value6" to ws-field-1 + Expect ws-field-1 != "value1" + + TestCase "Non-equality with an alphanumeric literal and reference modification" + move "Hello, World!" to ws-field-2 + Expect ws-field-2(8:6) not to be "World" + + TestCase "Greater-than sign with an alphanumeric literal" + move "Beta" to ws-field-1 + move "Alpha" to ws-field-2 + Expect ws-field-1 > ws-field-2 + + TestCase "Less-than sign with an alphanumeric literal" + move "Beta" to ws-field-1 + move "Alpha" to ws-field-2 + Expect ws-field-2 < ws-field-1 + + TestCase "Not greater-than sign with an alphanumeric literal" + move "Beta" to ws-field-1 + move "Alpha" to ws-field-2 + Expect ws-field-2 not > ws-field-1 + + TestCase "Not less-than sign with an alphanumeric literal" + move "Beta" to ws-field-1 + move "Alpha" to ws-field-2 + Expect ws-field-1 not < ws-field-2 + + TestCase "Display numeric" + move 6 to ws-display-numeric + expect ws-display-numeric to be 6 + + + + diff --git a/vs code extension/client/testFixture copy/errorfree.cut b/vs code extension/client/testFixture copy/errorfree.cut new file mode 100644 index 00000000..261f924f --- /dev/null +++ b/vs code extension/client/testFixture copy/errorfree.cut @@ -0,0 +1,25 @@ + TESTSUITE 'Test AARM503 sections' + + TestCase "Equality with an alphanumeric literal using TO BE" + move "value1" to ws-field-1 + Expect ws-field-1 to be "value1" + + + BEFORE-EACH + MOVE 0 TO STATU-KD IN AARM503-PARM + END-BEFORE + + MOCK SECTION 911-PUT-HARD-ERROR + CONTINUE + END-MOCK + + MOCK PARAGRAPH 300-CHANGE-1 + EVALUATE VALUE-1 + WHEN "Hello" + MOVE "MOCKED" TO VALUE-1 + WHEN OTHER + MOVE "mocked" TO VALUE-1 + END-EVALUATE + END-MOCK + + \ No newline at end of file diff --git a/vs code extension/client/testFixture copy/missingdelimiters.cut b/vs code extension/client/testFixture copy/missingdelimiters.cut new file mode 100644 index 00000000..d4725ee7 --- /dev/null +++ b/vs code extension/client/testFixture copy/missingdelimiters.cut @@ -0,0 +1,11 @@ + TESTSUITE 'Test AARM503 sections' + + BEFORE-EACH + MOVE 0 TO STATU-KD IN AARM503-PARM + END-BEFORE + + MOCK SECTION 911-PUT-HARD-ERROR + CONTINUE + END-MOCK + + \ No newline at end of file diff --git a/vs code extension/client/testFixture copy/missingtestsuite.cut b/vs code extension/client/testFixture copy/missingtestsuite.cut new file mode 100644 index 00000000..eb9df9b8 --- /dev/null +++ b/vs code extension/client/testFixture copy/missingtestsuite.cut @@ -0,0 +1,18 @@ + TESTSUITE 'Test AARM503 sections' + + BEFORE-EACH + MOVE 0 TO STATU-KD IN AARM503-PARM + END-BEFORE + + MOCK SECTION 911-PUT-HARD-ERROR + CONTINUE + END-MOCK + + BEFORE-EACH + MOVE 0 TO STATU-KD IN AARM503-PARM + END-BEFORE + + MOCK SECTION 911-PUT-HARD-ERROR + CONTINUE + END-MOCK + \ No newline at end of file diff --git a/vs code extension/client/testFixture copy/syntaxerror.cut b/vs code extension/client/testFixture copy/syntaxerror.cut new file mode 100644 index 00000000..1f59ed77 --- /dev/null +++ b/vs code extension/client/testFixture copy/syntaxerror.cut @@ -0,0 +1,9 @@ + TESTSUITE 'Test AARM503 sections' + TESTSUITE 'Test AARM504 sections' + BEFORE-EACH + MOV 0 TO STATU-KD IN AARM503-PARM + END-BEFORE + + MOCK SECTION 911-PUT-HARD-ERROR + CONTINUE + END-MOCK diff --git a/vs code extension/client/testFixture/alpha/alpha copy/alpha.cut b/vs code extension/client/testFixture/alpha/alpha copy/alpha.cut new file mode 100644 index 00000000..8074bb50 --- /dev/null +++ b/vs code extension/client/testFixture/alpha/alpha copy/alpha.cut @@ -0,0 +1,61 @@ + TestSuite "Tests of alphanumeric expectations" + + TestCase "Equality with an alphanumeric literal using TO BE" + move "value1" to ws-field-1 + Expect ws-field-1 to be "value1" + + TestCase "Equality with an alphanumeric literal using TO EQUAL" + move "value2" to ws-field-1 + Expect ws-field-1 to equal "value2" + + TestCase "Equality with an alphanumeric literal using '='" + move "value3" to ws-field-1 + Expect ws-field-1 = "value3" + + TestCase "Equality with an alphanumeric literal and reference modification" + move "Hello, World!" to ws-field-2 + Expect ws-field-2(8:5) to be "World" + + TestCase "Non-equality with an alphanumeric literal using TO BE" + move "value4" to ws-field-1 + Expect ws-field-1 not to be "value1" + + TestCase "Non-equality with an alphanumeric literal using TO EQUAL" + move "value5" to ws-field-1 + Expect ws-field-1 not to equal "value1" + + TestCase "Non-equality with an alphanumeric literal using '!='" + move "value6" to ws-field-1 + Expect ws-field-1 != "value1" + + TestCase "Non-equality with an alphanumeric literal and reference modification" + move "Hello, World!" to ws-field-2 + Expect ws-field-2(8:6) not to be "World" + + TestCase "Greater-than sign with an alphanumeric literal" + move "Beta" to ws-field-1 + move "Alpha" to ws-field-2 + Expect ws-field-1 > ws-field-2 + + TestCase "Less-than sign with an alphanumeric literal" + move "Beta" to ws-field-1 + move "Alpha" to ws-field-2 + Expect ws-field-2 < ws-field-1 + + TestCase "Not greater-than sign with an alphanumeric literal" + move "Beta" to ws-field-1 + move "Alpha" to ws-field-2 + Expect ws-field-2 not > ws-field-1 + + TestCase "Not less-than sign with an alphanumeric literal" + move "Beta" to ws-field-1 + move "Alpha" to ws-field-2 + Expect ws-field-1 not < ws-field-2 + + TestCase "Display numeric" + move 6 to ws-display-numeric + expect ws-display-numeric to be 6 + + + + diff --git a/vs code extension/client/testFixture/alpha/alpha.cut b/vs code extension/client/testFixture/alpha/alpha.cut new file mode 100644 index 00000000..8074bb50 --- /dev/null +++ b/vs code extension/client/testFixture/alpha/alpha.cut @@ -0,0 +1,61 @@ + TestSuite "Tests of alphanumeric expectations" + + TestCase "Equality with an alphanumeric literal using TO BE" + move "value1" to ws-field-1 + Expect ws-field-1 to be "value1" + + TestCase "Equality with an alphanumeric literal using TO EQUAL" + move "value2" to ws-field-1 + Expect ws-field-1 to equal "value2" + + TestCase "Equality with an alphanumeric literal using '='" + move "value3" to ws-field-1 + Expect ws-field-1 = "value3" + + TestCase "Equality with an alphanumeric literal and reference modification" + move "Hello, World!" to ws-field-2 + Expect ws-field-2(8:5) to be "World" + + TestCase "Non-equality with an alphanumeric literal using TO BE" + move "value4" to ws-field-1 + Expect ws-field-1 not to be "value1" + + TestCase "Non-equality with an alphanumeric literal using TO EQUAL" + move "value5" to ws-field-1 + Expect ws-field-1 not to equal "value1" + + TestCase "Non-equality with an alphanumeric literal using '!='" + move "value6" to ws-field-1 + Expect ws-field-1 != "value1" + + TestCase "Non-equality with an alphanumeric literal and reference modification" + move "Hello, World!" to ws-field-2 + Expect ws-field-2(8:6) not to be "World" + + TestCase "Greater-than sign with an alphanumeric literal" + move "Beta" to ws-field-1 + move "Alpha" to ws-field-2 + Expect ws-field-1 > ws-field-2 + + TestCase "Less-than sign with an alphanumeric literal" + move "Beta" to ws-field-1 + move "Alpha" to ws-field-2 + Expect ws-field-2 < ws-field-1 + + TestCase "Not greater-than sign with an alphanumeric literal" + move "Beta" to ws-field-1 + move "Alpha" to ws-field-2 + Expect ws-field-2 not > ws-field-1 + + TestCase "Not less-than sign with an alphanumeric literal" + move "Beta" to ws-field-1 + move "Alpha" to ws-field-2 + Expect ws-field-1 not < ws-field-2 + + TestCase "Display numeric" + move 6 to ws-display-numeric + expect ws-display-numeric to be 6 + + + + diff --git a/vs code extension/client/testFixture/errorfree.cut b/vs code extension/client/testFixture/errorfree.cut index d91c7f27..261f924f 100644 --- a/vs code extension/client/testFixture/errorfree.cut +++ b/vs code extension/client/testFixture/errorfree.cut @@ -1,5 +1,10 @@ TESTSUITE 'Test AARM503 sections' + TestCase "Equality with an alphanumeric literal using TO BE" + move "value1" to ws-field-1 + Expect ws-field-1 to be "value1" + + BEFORE-EACH MOVE 0 TO STATU-KD IN AARM503-PARM END-BEFORE From 6d0a48de650a489587b211ef42458324b8a9b800 Mon Sep 17 00:00:00 2001 From: issacto Date: Mon, 21 Aug 2023 10:05:11 +0100 Subject: [PATCH 127/180] add test tree -2 Signed-off-by: issacto --- vs code extension/client/src/extension.ts | 34 ++++++++++++----------- 1 file changed, 18 insertions(+), 16 deletions(-) diff --git a/vs code extension/client/src/extension.ts b/vs code extension/client/src/extension.ts index 4c951d08..a8a67b30 100644 --- a/vs code extension/client/src/extension.ts +++ b/vs code extension/client/src/extension.ts @@ -125,14 +125,15 @@ export function activate(context: ExtensionContext) { run.enqueued(test); queue.push({ test, data }); } else { - if (data instanceof TestFile ) { + if (data instanceof TestFile ) { await data.updateFromDisk(ctrl, test); } await discoverTests(gatherTestItems(test)); } - - if (test.uri && !coveredLines.has(test.uri.toString())) { + if(data instanceof TestFile && test.children.size!=0 ) + { + if (test.uri && !coveredLines.has(test.uri.toString())) { try { const lines = (await getContentFromFilesystem(test.uri,true)) if(lines!=""){ @@ -144,8 +145,9 @@ export function activate(context: ExtensionContext) { ) ); } - } catch { - // ignored + } catch { + // ignored + } } } } @@ -257,18 +259,21 @@ function createDirItems( controller:vscode.TestController, uri: vscode.Uri){ file = controller.items.get(rootUri) data = testData.get(file) } + if(dirArr.length==1) return {file,data}; var prevFile: vscode.TestItem = file var tmpDir = rootUri + var tmpFile = null + var tmpData = null for(var i =1;i {items=items.concat(gatherTestItems(item))}); - return items; } - else if(data instanceof TestHeading && !test.children){ + else if(data instanceof TestHeading && test.children.size==0){ items.push(test) - return items; - }else if(data instanceof TestHeading && test.children){ + }else if(data instanceof TestHeading ){ test.children.forEach(item => items.push(item)); - return items; } else if(data instanceof TestCase){ items.push(test); - return items; } return items; From 4c96ebc9f34116529cdc56a86bf061f2f49e6a2d Mon Sep 17 00:00:00 2001 From: issacto Date: Mon, 21 Aug 2023 12:16:12 +0100 Subject: [PATCH 128/180] add test tree -3 Signed-off-by: issacto --- vs code extension/client/src/extension.ts | 16 +++++++++------- .../client/src/services/TestTree.ts | 18 ++++++++++++++++-- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/vs code extension/client/src/extension.ts b/vs code extension/client/src/extension.ts index a8a67b30..424645ac 100644 --- a/vs code extension/client/src/extension.ts +++ b/vs code extension/client/src/extension.ts @@ -125,13 +125,14 @@ export function activate(context: ExtensionContext) { run.enqueued(test); queue.push({ test, data }); } else { - if (data instanceof TestFile ) { + if (data instanceof TestFile ) { await data.updateFromDisk(ctrl, test); } await discoverTests(gatherTestItems(test)); + } - if(data instanceof TestFile && test.children.size!=0 ) + if(!(data instanceof TestFile) || !data.isDirectory(test.uri.fsPath)) { if (test.uri && !coveredLines.has(test.uri.toString())) { try { @@ -251,9 +252,10 @@ function createDirItems( controller:vscode.TestController, uri: vscode.Uri){ if(!controller.items.get(rootUri)){ file = controller.createTestItem(rootUri, dirArr[0], tmpUri); controller.items.add(file); - data = new TestFile() - testData.set(file, data); + data = new TestFile(); file.canResolveChildren = true; + testData.set(file, data); + } else{ file = controller.items.get(rootUri) @@ -266,17 +268,17 @@ function createDirItems( controller:vscode.TestController, uri: vscode.Uri){ var tmpDir = rootUri var tmpFile = null var tmpData = null - for(var i =1;i { const start = Date.now(); - await new Promise(resolve => setTimeout(resolve, 1000 + Math.random() * 1000)); + await new Promise(resolve => setTimeout(resolve, 1 + Math.random() * 1)); const duration = Date.now() - start; options.passed(item, duration); From b8cbe5e6a3cd99b6fb87d318e7886ded395196ae Mon Sep 17 00:00:00 2001 From: issacto Date: Fri, 25 Aug 2023 17:46:24 +0100 Subject: [PATCH 129/180] add test run in test tree -1 Signed-off-by: issacto --- .gitignore | 7 + .../Cobol-check/bin/cobol-check-0.2.8.jar | Bin 243281 -> 0 bytes .../client/src/services/TestTree.ts | 163 ---------- .../.eslintignore | 0 .../.eslintrc.js | 0 .../.eslintrc.json | 0 .../.vscodeignore | 0 .../CHANGELOG.md | 0 .../CONTRIBUTING.md | 0 .../Cobol-check/ParserErrorLog.txt | 0 .../Cobol-check/cobolcheck | 0 .../Cobol-check/cobolcheck.cmd | 0 .../Cobol-check/config.properties | 0 .../Cobol-check/default.properties | 0 .../Cobol-check/output/testResults.html | 278 ++++++++++++++++++ .../scripts/linux_gnucobol_run_tests | 0 .../scripts/windows_gnucobol_run_tests.cmd | 0 .../Cobol-check/src/main/cobol/ALPHA.CBL | 0 .../Cobol-check/src/main/cobol/NUMBERS.CBL | 0 .../cobol/ALPHA/AlphaExpectationsTest.cut | 0 .../cobol/NUMBERS/SymbolicRelationsTest.cut | 0 .../LICENSE | 0 .../README.md | 0 .../client/package.json | 0 .../client/src/Helpers/ExtensionHelper.ts | 38 +++ .../client/src/Helpers/HtmlHelper.ts | 0 .../client/src/Helpers/PathHelper.ts | 0 .../client/src/Helpers/StringHelper.ts | 0 .../client/src/extension.ts | 50 ++-- .../src/services/CobolCheckConfiguration.ts | 0 .../src/services/CobolCheckInputParser.ts | 0 .../client/src/services/CobolCheckLauncher.ts | 46 ++- .../src/services/CobolCheckOutputParser.ts | 8 +- .../client/src/services/ResultWebView.ts | 0 .../client/src/services/TestTree.ts | 223 ++++++++++++++ .../services/cutLanguageClientServerSetup.ts | 0 .../client/src/test/diagnostics.test.ts | 0 .../client/src/test/helper.ts | 0 .../client/src/test/index.ts | 0 .../client/src/test/runTest.ts | 0 .../client/src/utils/Logger.ts | 0 .../vscode.proposed.testContinuousRun.d.ts | 0 .../src/vscode.proposed.testCoverage.d.ts | 0 .../client/test.cut | 1 - .../client/testFixture copy/alpha.cut | 0 .../client/testFixture copy/alpha/alpha.cut | 0 .../client/testFixture copy/errorfree.cut | 0 .../testFixture copy/missingdelimiters.cut | 0 .../testFixture copy/missingtestsuite.cut | 0 .../client/testFixture copy/syntaxerror.cut | 0 .../client/testFixture/alpha.cut | 0 .../testFixture/alpha/alpha copy/alpha.cut | 0 .../client/testFixture/alpha/alpha.cut | 0 .../client/testFixture/errorfree.cut | 0 .../client/testFixture/missingdelimiters.cut | 0 .../client/testFixture/missingtestsuite.cut | 0 .../client/testFixture/syntaxerror.cut | 0 .../client/tsconfig.json | 0 .../images/cobol-check-logo-small.png | Bin .../images/cobol-check-logo-white-small.png | Bin .../images/run-dark.svg | 0 .../images/run-light.svg | 0 .../language-configuration.json | 0 .../media/main.css | 0 .../media/main.js | 0 .../media/reset.css | 0 .../media/vscode.css | 0 .../package.json | 0 .../scripts/e2e.sh | 0 .../server/package.json | 0 .../server/src/server.ts | 0 .../server/src/utils/Logger.ts | 0 .../server/tsconfig.json | 0 .../snippets/cut-snippets.json | 0 .../syntaxes/cut.tmLanguage.json | 0 .../tsconfig.json | 0 76 files changed, 621 insertions(+), 193 deletions(-) delete mode 100644 vs code extension/Cobol-check/bin/cobol-check-0.2.8.jar delete mode 100644 vs code extension/client/src/services/TestTree.ts rename {vs code extension => vs-code-extension}/.eslintignore (100%) rename {vs code extension => vs-code-extension}/.eslintrc.js (100%) rename {vs code extension => vs-code-extension}/.eslintrc.json (100%) rename {vs code extension => vs-code-extension}/.vscodeignore (100%) rename {vs code extension => vs-code-extension}/CHANGELOG.md (100%) rename {vs code extension => vs-code-extension}/CONTRIBUTING.md (100%) create mode 100755 vs-code-extension/Cobol-check/ParserErrorLog.txt rename {vs code extension => vs-code-extension}/Cobol-check/cobolcheck (100%) rename {vs code extension => vs-code-extension}/Cobol-check/cobolcheck.cmd (100%) rename {vs code extension => vs-code-extension}/Cobol-check/config.properties (100%) rename {vs code extension => vs-code-extension}/Cobol-check/default.properties (100%) create mode 100755 vs-code-extension/Cobol-check/output/testResults.html rename {vs code extension => vs-code-extension}/Cobol-check/scripts/linux_gnucobol_run_tests (100%) mode change 100644 => 100755 rename {vs code extension => vs-code-extension}/Cobol-check/scripts/windows_gnucobol_run_tests.cmd (100%) rename {vs code extension => vs-code-extension}/Cobol-check/src/main/cobol/ALPHA.CBL (100%) rename {vs code extension => vs-code-extension}/Cobol-check/src/main/cobol/NUMBERS.CBL (100%) rename {vs code extension => vs-code-extension}/Cobol-check/src/test/cobol/ALPHA/AlphaExpectationsTest.cut (100%) rename {vs code extension => vs-code-extension}/Cobol-check/src/test/cobol/NUMBERS/SymbolicRelationsTest.cut (100%) rename {vs code extension => vs-code-extension}/LICENSE (100%) rename {vs code extension => vs-code-extension}/README.md (100%) rename {vs code extension => vs-code-extension}/client/package.json (100%) rename {vs code extension => vs-code-extension}/client/src/Helpers/ExtensionHelper.ts (78%) rename {vs code extension => vs-code-extension}/client/src/Helpers/HtmlHelper.ts (100%) rename {vs code extension => vs-code-extension}/client/src/Helpers/PathHelper.ts (100%) rename {vs code extension => vs-code-extension}/client/src/Helpers/StringHelper.ts (100%) rename {vs code extension => vs-code-extension}/client/src/extension.ts (90%) rename {vs code extension => vs-code-extension}/client/src/services/CobolCheckConfiguration.ts (100%) rename {vs code extension => vs-code-extension}/client/src/services/CobolCheckInputParser.ts (100%) rename {vs code extension => vs-code-extension}/client/src/services/CobolCheckLauncher.ts (80%) rename {vs code extension => vs-code-extension}/client/src/services/CobolCheckOutputParser.ts (90%) rename {vs code extension => vs-code-extension}/client/src/services/ResultWebView.ts (100%) create mode 100644 vs-code-extension/client/src/services/TestTree.ts rename {vs code extension => vs-code-extension}/client/src/services/cutLanguageClientServerSetup.ts (100%) rename {vs code extension => vs-code-extension}/client/src/test/diagnostics.test.ts (100%) rename {vs code extension => vs-code-extension}/client/src/test/helper.ts (100%) rename {vs code extension => vs-code-extension}/client/src/test/index.ts (100%) rename {vs code extension => vs-code-extension}/client/src/test/runTest.ts (100%) rename {vs code extension => vs-code-extension}/client/src/utils/Logger.ts (100%) rename {vs code extension => vs-code-extension}/client/src/vscode.proposed.testContinuousRun.d.ts (100%) rename {vs code extension => vs-code-extension}/client/src/vscode.proposed.testCoverage.d.ts (100%) rename {vs code extension => vs-code-extension}/client/test.cut (98%) rename {vs code extension => vs-code-extension}/client/testFixture copy/alpha.cut (100%) rename {vs code extension => vs-code-extension}/client/testFixture copy/alpha/alpha.cut (100%) rename {vs code extension => vs-code-extension}/client/testFixture copy/errorfree.cut (100%) rename {vs code extension => vs-code-extension}/client/testFixture copy/missingdelimiters.cut (100%) rename {vs code extension => vs-code-extension}/client/testFixture copy/missingtestsuite.cut (100%) rename {vs code extension => vs-code-extension}/client/testFixture copy/syntaxerror.cut (100%) rename {vs code extension => vs-code-extension}/client/testFixture/alpha.cut (100%) rename {vs code extension => vs-code-extension}/client/testFixture/alpha/alpha copy/alpha.cut (100%) rename {vs code extension => vs-code-extension}/client/testFixture/alpha/alpha.cut (100%) rename {vs code extension => vs-code-extension}/client/testFixture/errorfree.cut (100%) rename {vs code extension => vs-code-extension}/client/testFixture/missingdelimiters.cut (100%) rename {vs code extension => vs-code-extension}/client/testFixture/missingtestsuite.cut (100%) rename {vs code extension => vs-code-extension}/client/testFixture/syntaxerror.cut (100%) rename {vs code extension => vs-code-extension}/client/tsconfig.json (100%) rename {vs code extension => vs-code-extension}/images/cobol-check-logo-small.png (100%) rename {vs code extension => vs-code-extension}/images/cobol-check-logo-white-small.png (100%) rename {vs code extension => vs-code-extension}/images/run-dark.svg (100%) rename {vs code extension => vs-code-extension}/images/run-light.svg (100%) rename {vs code extension => vs-code-extension}/language-configuration.json (100%) rename {vs code extension => vs-code-extension}/media/main.css (100%) rename {vs code extension => vs-code-extension}/media/main.js (100%) rename {vs code extension => vs-code-extension}/media/reset.css (100%) rename {vs code extension => vs-code-extension}/media/vscode.css (100%) rename {vs code extension => vs-code-extension}/package.json (100%) rename {vs code extension => vs-code-extension}/scripts/e2e.sh (100%) rename {vs code extension => vs-code-extension}/server/package.json (100%) rename {vs code extension => vs-code-extension}/server/src/server.ts (100%) rename {vs code extension => vs-code-extension}/server/src/utils/Logger.ts (100%) rename {vs code extension => vs-code-extension}/server/tsconfig.json (100%) rename {vs code extension => vs-code-extension}/snippets/cut-snippets.json (100%) rename {vs code extension => vs-code-extension}/syntaxes/cut.tmLanguage.json (100%) rename {vs code extension => vs-code-extension}/tsconfig.json (100%) diff --git a/.gitignore b/.gitignore index 1fc039d4..f061ef97 100644 --- a/.gitignore +++ b/.gitignore @@ -34,6 +34,13 @@ vs code extension/**/client/server vs code extension/**/.vscode-test vs code extension/**/Jenkinsfile +vs-code-extension/**/package-lock.json +vs-code-extension/**/out +vs-code-extension/**/node_modules +vs-code-extension/**/client/server +vs-code-extension/**/.vscode-test +vs-code-extension/**/Jenkinsfile + # Java-related gitignore entries from: https://gist.github.com/dedunumax/54e82214715e35439227 ############################## diff --git a/vs code extension/Cobol-check/bin/cobol-check-0.2.8.jar b/vs code extension/Cobol-check/bin/cobol-check-0.2.8.jar deleted file mode 100644 index 8f842d3a0057bd9161e33ea2bcfdbbbd52259097..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 243281 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