change to v2 output (#44)
* update to latest * wip * update expected results * update abaplint
This commit is contained in:
102
package-lock.json
generated
102
package-lock.json
generated
@@ -9,10 +9,10 @@
|
||||
"version": "0.1.0",
|
||||
"license": "AGPL-3.0-or-later",
|
||||
"dependencies": {
|
||||
"@abaplint/cli": "^2.84.9",
|
||||
"@abaplint/runtime": "^1.7.34",
|
||||
"@abaplint/transpiler": "^1.7.34",
|
||||
"@abaplint/transpiler-cli": "^1.7.34"
|
||||
"@abaplint/cli": "^2.85.11",
|
||||
"@abaplint/runtime": "^1.7.44",
|
||||
"@abaplint/transpiler": "^1.7.44",
|
||||
"@abaplint/transpiler-cli": "^1.7.44"
|
||||
},
|
||||
"bin": {
|
||||
"abap-test-runner": "bin/run.sh"
|
||||
@@ -20,7 +20,7 @@
|
||||
"devDependencies": {
|
||||
"@types/chai": "^4.3.0",
|
||||
"@types/mocha": "^9.1.0",
|
||||
"@types/node": "^17.0.13",
|
||||
"@types/node": "^17.0.15",
|
||||
"chai": "^4.3.6",
|
||||
"mocha": "^9.2.0",
|
||||
"source-map-support": "^0.5.21",
|
||||
@@ -28,9 +28,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@abaplint/cli": {
|
||||
"version": "2.84.9",
|
||||
"resolved": "https://registry.npmjs.org/@abaplint/cli/-/cli-2.84.9.tgz",
|
||||
"integrity": "sha512-As9xfHC2PUNdXYk7cCY5QK4WDS+GAABOdpU3VPyrxjyZkUwnbShtUIFveKZp9p6Ym1vOmKL/HxW6o+odWyKfhA==",
|
||||
"version": "2.85.11",
|
||||
"resolved": "https://registry.npmjs.org/@abaplint/cli/-/cli-2.85.11.tgz",
|
||||
"integrity": "sha512-VZSAzt7OneY8rcetQoABBuZw+qyAU4f161rP0nLnhfvQwtF8/mKJ0jpYN9bhILJgO/n7UJsV+ZIk+HYqNLJcMw==",
|
||||
"bin": {
|
||||
"abaplint": "abaplint"
|
||||
},
|
||||
@@ -39,11 +39,11 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@abaplint/core": {
|
||||
"version": "2.84.9",
|
||||
"resolved": "https://registry.npmjs.org/@abaplint/core/-/core-2.84.9.tgz",
|
||||
"integrity": "sha512-qBL8artV0AzVpZTImGqjSNR+LYskNv/+00T+oBH4GInawXaUcHDl9541Cd+BibegOTHNFuJrek4xWotj7TxLxg==",
|
||||
"version": "2.85.10",
|
||||
"resolved": "https://registry.npmjs.org/@abaplint/core/-/core-2.85.10.tgz",
|
||||
"integrity": "sha512-GsOetLD3FW/kNgCkNe44/5LTh3lrodgBPAH2JPYDH4hIeAOa8VVNVxObpA3PwuvMF8lI7EyXk5T1GQjmvmX4Mw==",
|
||||
"dependencies": {
|
||||
"fast-xml-parser": "^4.0.1",
|
||||
"fast-xml-parser": "^4.0.2",
|
||||
"json5": "^2.2.0",
|
||||
"vscode-languageserver-protocol": "^3.16.0",
|
||||
"vscode-languageserver-types": "^3.16.0"
|
||||
@@ -53,27 +53,27 @@
|
||||
}
|
||||
},
|
||||
"node_modules/@abaplint/runtime": {
|
||||
"version": "1.7.34",
|
||||
"resolved": "https://registry.npmjs.org/@abaplint/runtime/-/runtime-1.7.34.tgz",
|
||||
"integrity": "sha512-eob6xCSsUFuMt67sHJ6Hs1HSL0sWuLunUqw60aLdME/2DVQWsxLtye+zl7ebwxYa9tSTi+x1KxuhLN2CiHgtuQ==",
|
||||
"version": "1.7.44",
|
||||
"resolved": "https://registry.npmjs.org/@abaplint/runtime/-/runtime-1.7.44.tgz",
|
||||
"integrity": "sha512-2wwXMM0V4eK1zAJvm0CiiLbNbPDY7LapJpWtW7YhhpYkqBKkLQdLga9cIyW8GHyY8NLY5wu5+rlIOUD7InCBew==",
|
||||
"dependencies": {
|
||||
"hdb": "^0.19.1",
|
||||
"sql.js": "^1.6.2"
|
||||
}
|
||||
},
|
||||
"node_modules/@abaplint/transpiler": {
|
||||
"version": "1.7.34",
|
||||
"resolved": "https://registry.npmjs.org/@abaplint/transpiler/-/transpiler-1.7.34.tgz",
|
||||
"integrity": "sha512-h68WyJijGbh3gnFfGdzr0St73/XUIJFcbz312qOBw6t6TaovQwHvxzxxlMHx6IiM5lxeGuQtX4Hw4+XYkgnCQw==",
|
||||
"version": "1.7.44",
|
||||
"resolved": "https://registry.npmjs.org/@abaplint/transpiler/-/transpiler-1.7.44.tgz",
|
||||
"integrity": "sha512-mSb++JCuF43KRHUAyulp/68NnBGpueqsJD2ViGCk7D5UPV3bEME05ggIWDw7prc/VDnovz5ZQtlRT0vibyA+tg==",
|
||||
"dependencies": {
|
||||
"@abaplint/core": "^2.84.9",
|
||||
"@abaplint/core": "^2.85.10",
|
||||
"source-map": "^0.7.3"
|
||||
}
|
||||
},
|
||||
"node_modules/@abaplint/transpiler-cli": {
|
||||
"version": "1.7.34",
|
||||
"resolved": "https://registry.npmjs.org/@abaplint/transpiler-cli/-/transpiler-cli-1.7.34.tgz",
|
||||
"integrity": "sha512-UzInhr9Jfxn0ps18kIrTZFm/OAAhG32I/FAAOIXQ2d4qlXe5LU7blA0OtvL9+rggreS+6HPyHXwPqEVKf1GdEA==",
|
||||
"version": "1.7.44",
|
||||
"resolved": "https://registry.npmjs.org/@abaplint/transpiler-cli/-/transpiler-cli-1.7.44.tgz",
|
||||
"integrity": "sha512-WpzPJAUsSDkYYNo6rh7MBdh+E47F2t0XYxj8o3/odqERgKpqX15Ag1OkSSWQp6W8ev4kZFBj9xnufm4ZGeLNGg==",
|
||||
"bin": {
|
||||
"abap_transpile": "abap_transpile"
|
||||
}
|
||||
@@ -99,9 +99,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/node": {
|
||||
"version": "17.0.13",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.13.tgz",
|
||||
"integrity": "sha512-Y86MAxASe25hNzlDbsviXl8jQHb0RDvKt4c40ZJQ1Don0AAL0STLZSs4N+6gLEO55pedy7r2cLwS+ZDxPm/2Bw==",
|
||||
"version": "17.0.15",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.15.tgz",
|
||||
"integrity": "sha512-zWt4SDDv1S9WRBNxLFxFRHxdD9tvH8f5/kg5/IaLFdnSNXsDY4eL3Q3XXN+VxUnWIhyVFDwcsmAprvwXoM/ClA==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@ungap/promise-all-settled": {
|
||||
@@ -433,9 +433,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/fast-xml-parser": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.0.1.tgz",
|
||||
"integrity": "sha512-EN1yOXDmMqpHrqkwTlCJDvFjepJBoBxjLRDtDxFmqrBILGV3NyFWpmcsofSKCCzc+YxhvNreB5rcKzG+TlyWpg==",
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.0.2.tgz",
|
||||
"integrity": "sha512-3GOSbMTZxxrPPQ+aURM7Wia10bi71HBbiG/3mOEEkRSAkRtg4m7UhMSnB2rzOhBeRHyJUWsllOfyNnjTT1b85w==",
|
||||
"dependencies": {
|
||||
"strnum": "^1.0.5"
|
||||
},
|
||||
@@ -1240,36 +1240,36 @@
|
||||
},
|
||||
"dependencies": {
|
||||
"@abaplint/cli": {
|
||||
"version": "2.84.9",
|
||||
"resolved": "https://registry.npmjs.org/@abaplint/cli/-/cli-2.84.9.tgz",
|
||||
"integrity": "sha512-As9xfHC2PUNdXYk7cCY5QK4WDS+GAABOdpU3VPyrxjyZkUwnbShtUIFveKZp9p6Ym1vOmKL/HxW6o+odWyKfhA=="
|
||||
"version": "2.85.11",
|
||||
"resolved": "https://registry.npmjs.org/@abaplint/cli/-/cli-2.85.11.tgz",
|
||||
"integrity": "sha512-VZSAzt7OneY8rcetQoABBuZw+qyAU4f161rP0nLnhfvQwtF8/mKJ0jpYN9bhILJgO/n7UJsV+ZIk+HYqNLJcMw=="
|
||||
},
|
||||
"@abaplint/core": {
|
||||
"version": "2.84.9",
|
||||
"resolved": "https://registry.npmjs.org/@abaplint/core/-/core-2.84.9.tgz",
|
||||
"integrity": "sha512-qBL8artV0AzVpZTImGqjSNR+LYskNv/+00T+oBH4GInawXaUcHDl9541Cd+BibegOTHNFuJrek4xWotj7TxLxg==",
|
||||
"version": "2.85.10",
|
||||
"resolved": "https://registry.npmjs.org/@abaplint/core/-/core-2.85.10.tgz",
|
||||
"integrity": "sha512-GsOetLD3FW/kNgCkNe44/5LTh3lrodgBPAH2JPYDH4hIeAOa8VVNVxObpA3PwuvMF8lI7EyXk5T1GQjmvmX4Mw==",
|
||||
"requires": {
|
||||
"fast-xml-parser": "^4.0.1",
|
||||
"fast-xml-parser": "^4.0.2",
|
||||
"json5": "^2.2.0",
|
||||
"vscode-languageserver-protocol": "^3.16.0",
|
||||
"vscode-languageserver-types": "^3.16.0"
|
||||
}
|
||||
},
|
||||
"@abaplint/runtime": {
|
||||
"version": "1.7.34",
|
||||
"resolved": "https://registry.npmjs.org/@abaplint/runtime/-/runtime-1.7.34.tgz",
|
||||
"integrity": "sha512-eob6xCSsUFuMt67sHJ6Hs1HSL0sWuLunUqw60aLdME/2DVQWsxLtye+zl7ebwxYa9tSTi+x1KxuhLN2CiHgtuQ==",
|
||||
"version": "1.7.44",
|
||||
"resolved": "https://registry.npmjs.org/@abaplint/runtime/-/runtime-1.7.44.tgz",
|
||||
"integrity": "sha512-2wwXMM0V4eK1zAJvm0CiiLbNbPDY7LapJpWtW7YhhpYkqBKkLQdLga9cIyW8GHyY8NLY5wu5+rlIOUD7InCBew==",
|
||||
"requires": {
|
||||
"hdb": "^0.19.1",
|
||||
"sql.js": "^1.6.2"
|
||||
}
|
||||
},
|
||||
"@abaplint/transpiler": {
|
||||
"version": "1.7.34",
|
||||
"resolved": "https://registry.npmjs.org/@abaplint/transpiler/-/transpiler-1.7.34.tgz",
|
||||
"integrity": "sha512-h68WyJijGbh3gnFfGdzr0St73/XUIJFcbz312qOBw6t6TaovQwHvxzxxlMHx6IiM5lxeGuQtX4Hw4+XYkgnCQw==",
|
||||
"version": "1.7.44",
|
||||
"resolved": "https://registry.npmjs.org/@abaplint/transpiler/-/transpiler-1.7.44.tgz",
|
||||
"integrity": "sha512-mSb++JCuF43KRHUAyulp/68NnBGpueqsJD2ViGCk7D5UPV3bEME05ggIWDw7prc/VDnovz5ZQtlRT0vibyA+tg==",
|
||||
"requires": {
|
||||
"@abaplint/core": "^2.84.9",
|
||||
"@abaplint/core": "^2.85.10",
|
||||
"source-map": "^0.7.3"
|
||||
},
|
||||
"dependencies": {
|
||||
@@ -1281,9 +1281,9 @@
|
||||
}
|
||||
},
|
||||
"@abaplint/transpiler-cli": {
|
||||
"version": "1.7.34",
|
||||
"resolved": "https://registry.npmjs.org/@abaplint/transpiler-cli/-/transpiler-cli-1.7.34.tgz",
|
||||
"integrity": "sha512-UzInhr9Jfxn0ps18kIrTZFm/OAAhG32I/FAAOIXQ2d4qlXe5LU7blA0OtvL9+rggreS+6HPyHXwPqEVKf1GdEA=="
|
||||
"version": "1.7.44",
|
||||
"resolved": "https://registry.npmjs.org/@abaplint/transpiler-cli/-/transpiler-cli-1.7.44.tgz",
|
||||
"integrity": "sha512-WpzPJAUsSDkYYNo6rh7MBdh+E47F2t0XYxj8o3/odqERgKpqX15Ag1OkSSWQp6W8ev4kZFBj9xnufm4ZGeLNGg=="
|
||||
},
|
||||
"@types/chai": {
|
||||
"version": "4.3.0",
|
||||
@@ -1298,9 +1298,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"@types/node": {
|
||||
"version": "17.0.13",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.13.tgz",
|
||||
"integrity": "sha512-Y86MAxASe25hNzlDbsviXl8jQHb0RDvKt4c40ZJQ1Don0AAL0STLZSs4N+6gLEO55pedy7r2cLwS+ZDxPm/2Bw==",
|
||||
"version": "17.0.15",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-17.0.15.tgz",
|
||||
"integrity": "sha512-zWt4SDDv1S9WRBNxLFxFRHxdD9tvH8f5/kg5/IaLFdnSNXsDY4eL3Q3XXN+VxUnWIhyVFDwcsmAprvwXoM/ClA==",
|
||||
"dev": true
|
||||
},
|
||||
"@ungap/promise-all-settled": {
|
||||
@@ -1548,9 +1548,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"fast-xml-parser": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.0.1.tgz",
|
||||
"integrity": "sha512-EN1yOXDmMqpHrqkwTlCJDvFjepJBoBxjLRDtDxFmqrBILGV3NyFWpmcsofSKCCzc+YxhvNreB5rcKzG+TlyWpg==",
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-4.0.2.tgz",
|
||||
"integrity": "sha512-3GOSbMTZxxrPPQ+aURM7Wia10bi71HBbiG/3mOEEkRSAkRtg4m7UhMSnB2rzOhBeRHyJUWsllOfyNnjTT1b85w==",
|
||||
"requires": {
|
||||
"strnum": "^1.0.5"
|
||||
}
|
||||
|
||||
10
package.json
10
package.json
@@ -26,10 +26,10 @@
|
||||
"require": "source-map-support/register"
|
||||
},
|
||||
"dependencies": {
|
||||
"@abaplint/transpiler-cli": "^1.7.34",
|
||||
"@abaplint/transpiler": "^1.7.34",
|
||||
"@abaplint/cli": "^2.84.9",
|
||||
"@abaplint/runtime": "^1.7.34"
|
||||
"@abaplint/transpiler-cli": "^1.7.44",
|
||||
"@abaplint/transpiler": "^1.7.44",
|
||||
"@abaplint/cli": "^2.85.11",
|
||||
"@abaplint/runtime": "^1.7.44"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/chai": "^4.3.0",
|
||||
@@ -38,6 +38,6 @@
|
||||
"mocha": "^9.2.0",
|
||||
"source-map-support": "^0.5.21",
|
||||
"typescript": "^4.5.5",
|
||||
"@types/node": "^17.0.13"
|
||||
"@types/node": "^17.0.15"
|
||||
}
|
||||
}
|
||||
|
||||
32
src/index.ts
32
src/index.ts
@@ -10,15 +10,27 @@ const inputDir = process.argv[3];
|
||||
const outputDir = process.argv[4];
|
||||
const outputFile = process.argv[5];
|
||||
|
||||
interface IOutputTest {
|
||||
name: string,
|
||||
status: "pass" | "fail" | "error",
|
||||
message: string,
|
||||
output?: string,
|
||||
test_code?: string,
|
||||
}
|
||||
|
||||
interface IOutput {
|
||||
version: number,
|
||||
status: "pass" | "fail" | "error",
|
||||
message?: string,
|
||||
tests: IOutputTest[],
|
||||
}
|
||||
|
||||
// **************************************
|
||||
|
||||
const output: IOutput = {
|
||||
version: 1,
|
||||
version: 2,
|
||||
status: "pass",
|
||||
tests: [],
|
||||
}
|
||||
|
||||
class Runner {
|
||||
@@ -38,9 +50,25 @@ class Runner {
|
||||
this.link();
|
||||
this.executeTests();
|
||||
}
|
||||
if (output.status === "pass") {
|
||||
this.readJsonResult();
|
||||
}
|
||||
fs.writeFileSync(outputFile, JSON.stringify(output));
|
||||
}
|
||||
|
||||
private readJsonResult() {
|
||||
const list = JSON.parse(fs.readFileSync(path.join(this.tmpDir, "compiled", "output.json"), "utf-8"));
|
||||
for (const t of list) {
|
||||
if (t.status !== "SUCCESS") {
|
||||
output.status = "fail";
|
||||
}
|
||||
output.tests.push({
|
||||
name: t.method_name,
|
||||
status: t.status === "SUCCESS" ? "pass" : "fail",
|
||||
message: t.message});
|
||||
}
|
||||
}
|
||||
|
||||
private syntaxAndDownport() {
|
||||
const LINT_RESULT = "_abaplint.txt";
|
||||
const abaplintConfig = Transpiler.config;
|
||||
@@ -126,7 +154,7 @@ class Runner {
|
||||
const RUN_RESULT = "_run_result.txt";
|
||||
|
||||
try {
|
||||
execSync(`node compiled/index.mjs > ` + RUN_RESULT, {
|
||||
execSync(`node compiled/index_open.mjs > ` + RUN_RESULT, {
|
||||
stdio: 'pipe',
|
||||
cwd: this.tmpDir});
|
||||
} catch (error) {
|
||||
|
||||
@@ -1 +1 @@
|
||||
{"version":1,"status":"pass"}
|
||||
{"version":2,"status":"pass","tests":[{"name":"TEST","status":"pass","message":""}]}
|
||||
@@ -1 +1 @@
|
||||
{"version":1,"status":"fail","message":"ZCL_SIMPLE: running ltcl_simple->test1\n\nError: ASSERT failed"}
|
||||
{"version":2,"status":"fail","tests":[{"name":"TEST1","status":"fail","message":"Expected 123, got 2"},{"name":"TEST2","status":"fail","message":"Expected 36, got 2"}]}
|
||||
@@ -1 +1 @@
|
||||
{"version":1,"status":"pass"}
|
||||
{"version":2,"status":"pass","tests":[{"name":"TEST","status":"pass","message":""}]}
|
||||
@@ -1 +1 @@
|
||||
{"version":1,"status":"pass"}
|
||||
{"version":2,"status":"pass","tests":[{"name":"TEST","status":"pass","message":""}]}
|
||||
@@ -1 +1 @@
|
||||
{"version":1,"status":"error","message":"./zcl_simple.clas.abap[9, 5] - Statement does not exist in ABAPopen-abap(or a parser error), \"blah\" (parser_error) [E]\nabaplint: 1 issue(s) found"}
|
||||
{"version":2,"status":"error","tests":[],"message":"./zcl_simple.clas.abap[9, 5] - Statement does not exist in ABAPopen-abap(or a parser error), \"blah\" (parser_error) [E]\nabaplint: 1 issue(s) found"}
|
||||
@@ -1 +1 @@
|
||||
{"version":1,"status":"fail","message":"ZCL_SIMPLE: running ltcl_simple->test\n\nError: ASSERT failed"}
|
||||
{"version":2,"status":"fail","tests":[{"name":"TEST","status":"fail","message":"Expected 123456, got 3"}]}
|
||||
@@ -1 +1 @@
|
||||
{"version":1,"status":"pass"}
|
||||
{"version":2,"status":"pass","tests":[{"name":"TEST","status":"pass","message":""}]}
|
||||
@@ -1 +1 @@
|
||||
{"version":1,"status":"fail","message":"ZCL_SIMPLE: running ltcl_simple->test1\nZCL_SIMPLE: running ltcl_simple->test2\n\nError: ASSERT failed"}
|
||||
{"version":2,"status":"fail","tests":[{"name":"TEST1","status":"pass","message":""},{"name":"TEST2","status":"fail","message":"Expected 36, got 2"}]}
|
||||
@@ -1 +1 @@
|
||||
{"version":1,"status":"pass"}
|
||||
{"version":2,"status":"pass","tests":[{"name":"TEST","status":"pass","message":""}]}
|
||||
Reference in New Issue
Block a user