From 35edce6248f054d3cdd7b309588abe9d5c478760 Mon Sep 17 00:00:00 2001 From: Cristiano Calcagno Date: Sat, 11 Jun 2022 02:06:40 +0200 Subject: [PATCH 1/3] Build tests: don't use a global install of rescript. --- .../package-lock.json | 67 +++++++++++++++++++ .../testcase.js | 2 +- jscomp/build_tests/bucklescript-tea/input.js | 2 +- jscomp/build_tests/case/input.js | 2 +- jscomp/build_tests/case2/input.js | 2 +- jscomp/build_tests/case3/input.js | 2 +- jscomp/build_tests/case3/package-lock.json | 66 ++++++++++++++++++ jscomp/build_tests/cmd/input.js | 2 +- jscomp/build_tests/custom_namespace/input.js | 2 +- .../build_tests/customize_namespace/input.js | 2 +- .../customize_namespace/package-lock.json | 66 ++++++++++++++++++ jscomp/build_tests/cycle/input.js | 2 +- jscomp/build_tests/cycle/package-lock.json | 67 +++++++++++++++++++ jscomp/build_tests/cycle1/input.js | 2 +- jscomp/build_tests/cycle1/package-lock.json | 45 +++++++++++++ jscomp/build_tests/dev/input.js | 2 +- jscomp/build_tests/devdeps/input.js | 4 +- jscomp/build_tests/devdeps/package-lock.json | 66 ++++++++++++++++++ jscomp/build_tests/devonly/input.js | 2 +- jscomp/build_tests/devonly/package-lock.json | 66 ++++++++++++++++++ .../duplicated_symlinked_packages/input.js | 4 +- jscomp/build_tests/exports/input.js | 2 +- jscomp/build_tests/generator/input.js | 2 +- jscomp/build_tests/generator/src/test.ml | 2 +- jscomp/build_tests/hyphen2/input.js | 2 +- jscomp/build_tests/in_source/input.js | 2 +- jscomp/build_tests/install/input.js | 8 +-- jscomp/build_tests/install/package-lock.json | 67 +++++++++++++++++++ jscomp/build_tests/jsxv/input.js | 2 +- jscomp/build_tests/namespace/input.js | 2 +- jscomp/build_tests/nested/input.js | 2 +- jscomp/build_tests/nnest/input.js | 2 +- jscomp/build_tests/ns/input.js | 2 +- jscomp/build_tests/package-lock.json | 43 +++++++++++- jscomp/build_tests/package.json | 6 +- jscomp/build_tests/pinned/input.js | 6 +- jscomp/build_tests/pinned/package-lock.json | 66 ++++++++++++++++++ jscomp/build_tests/post-build/input.js | 2 +- .../build_tests/post-build/package-lock.json | 66 ++++++++++++++++++ jscomp/build_tests/priv/input.js | 2 +- jscomp/build_tests/priv2/input.js | 2 +- jscomp/build_tests/react_ppx/input.js | 2 +- jscomp/build_tests/rerror/input.js | 4 +- jscomp/build_tests/scoped_ppx/input.js | 4 +- .../build_tests/scoped_ppx/package-lock.json | 40 +++++++++++ jscomp/build_tests/scoped_ppx/package.json | 5 ++ jscomp/build_tests/top/input.js | 2 +- jscomp/build_tests/top/package-lock.json | 66 ++++++++++++++++++ jscomp/build_tests/unicode/input.js | 2 +- jscomp/build_tests/warnerror/input.js | 2 +- jscomp/build_tests/weird_names/input.js | 2 +- .../build_tests/weird_names/package-lock.json | 66 ++++++++++++++++++ jscomp/build_tests/white space/input.js | 4 +- jscomp/build_tests/x-y/input.js | 2 +- jscomp/build_tests/xpkg/input.js | 2 +- jscomp/build_tests/zerocycle/input.js | 2 +- .../build_tests/zerocycle/package-lock.json | 65 ++++++++++++++++++ package.json | 2 +- scripts/ciTest.js | 22 +----- 59 files changed, 984 insertions(+), 73 deletions(-) create mode 100644 jscomp/build_tests/bs_dependencies_node_path_override/package-lock.json create mode 100644 jscomp/build_tests/case3/package-lock.json create mode 100644 jscomp/build_tests/customize_namespace/package-lock.json create mode 100644 jscomp/build_tests/cycle/package-lock.json create mode 100644 jscomp/build_tests/cycle1/package-lock.json create mode 100644 jscomp/build_tests/devdeps/package-lock.json create mode 100644 jscomp/build_tests/devonly/package-lock.json create mode 100644 jscomp/build_tests/install/package-lock.json create mode 100644 jscomp/build_tests/pinned/package-lock.json create mode 100644 jscomp/build_tests/post-build/package-lock.json create mode 100644 jscomp/build_tests/scoped_ppx/package-lock.json create mode 100644 jscomp/build_tests/scoped_ppx/package.json create mode 100644 jscomp/build_tests/top/package-lock.json create mode 100644 jscomp/build_tests/weird_names/package-lock.json create mode 100644 jscomp/build_tests/zerocycle/package-lock.json diff --git a/jscomp/build_tests/bs_dependencies_node_path_override/package-lock.json b/jscomp/build_tests/bs_dependencies_node_path_override/package-lock.json new file mode 100644 index 0000000000..f36657f198 --- /dev/null +++ b/jscomp/build_tests/bs_dependencies_node_path_override/package-lock.json @@ -0,0 +1,67 @@ +{ + "name": "bs_dependencies_node_path_override", + "version": "0.1.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "bs_dependencies_node_path_override", + "version": "0.1.0", + "license": "MIT", + "dependencies": { + "rescript": "file:../../.." + }, + "devDependencies": { + "bs-platform": "^5.1.0-dev.3" + } + }, + "../../..": { + "name": "rescript", + "version": "10.0.0", + "hasInstallScript": true, + "license": "SEE LICENSE IN LICENSE", + "bin": { + "bsc": "bsc", + "bsrefmt": "bsrefmt", + "bstracing": "lib/bstracing", + "rescript": "rescript" + }, + "devDependencies": { + "mocha": "^7.2.0", + "nyc": "^15.0.0" + } + }, + "node_modules/bs-platform": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bs-platform/-/bs-platform-5.2.1.tgz", + "integrity": "sha512-3ISP+RBC/NYILiJnphCY0W3RTYpQ11JGa2dBBLVug5fpFZ0qtSaL3ZplD8MyjNeXX2bC7xgrWfgBSn8Tc9om7Q==", + "dev": true, + "hasInstallScript": true, + "bin": { + "bsb": "lib/bsb", + "bsc": "lib/bsc", + "bsrefmt": "lib/bsrefmt", + "bstracing": "lib/bstracing" + } + }, + "node_modules/rescript": { + "resolved": "../../..", + "link": true + } + }, + "dependencies": { + "bs-platform": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bs-platform/-/bs-platform-5.2.1.tgz", + "integrity": "sha512-3ISP+RBC/NYILiJnphCY0W3RTYpQ11JGa2dBBLVug5fpFZ0qtSaL3ZplD8MyjNeXX2bC7xgrWfgBSn8Tc9om7Q==", + "dev": true + }, + "rescript": { + "version": "file:../../..", + "requires": { + "mocha": "^7.2.0", + "nyc": "^15.0.0" + } + } + } +} diff --git a/jscomp/build_tests/bs_dependencies_node_path_override/testcase.js b/jscomp/build_tests/bs_dependencies_node_path_override/testcase.js index ef6be513f1..4818026f00 100644 --- a/jscomp/build_tests/bs_dependencies_node_path_override/testcase.js +++ b/jscomp/build_tests/bs_dependencies_node_path_override/testcase.js @@ -2,6 +2,6 @@ var assert = require('assert') var path = require('path') var p = require('child_process') -p.execSync(`rescript`, {cwd:__dirname,shell:true,encoding:'utf8',stdio:"inherit"}) +p.execSync(`../node_modules/.bin/rescript`, {cwd:__dirname,shell:true,encoding:'utf8',stdio:"inherit"}) var u = require("./examples/test.js") assert.equal(path.basename(u.v),'demo.mldemo.ml') \ No newline at end of file diff --git a/jscomp/build_tests/bucklescript-tea/input.js b/jscomp/build_tests/bucklescript-tea/input.js index 02396f4b91..b42ea3d753 100644 --- a/jscomp/build_tests/bucklescript-tea/input.js +++ b/jscomp/build_tests/bucklescript-tea/input.js @@ -1,7 +1,7 @@ var p = require("child_process"); const { assert } = require("console"); -var o = p.spawnSync(`rescript`); +var o = p.spawnSync(`../node_modules/.bin/rescript`); console.log(o.stderr + ""); console.log("-----"); diff --git a/jscomp/build_tests/case/input.js b/jscomp/build_tests/case/input.js index 429c95b53e..0f2a706da9 100644 --- a/jscomp/build_tests/case/input.js +++ b/jscomp/build_tests/case/input.js @@ -2,7 +2,7 @@ var p = require('child_process') var assert = require('assert') -var o = p.spawnSync(`rescript`,{encoding: 'utf8',cwd : __dirname}) +var o = p.spawnSync(`../node_modules/.bin/rescript`,{encoding: 'utf8',cwd : __dirname}) assert.ok(o.stderr.match(/different cases/).length > 0 ) \ No newline at end of file diff --git a/jscomp/build_tests/case2/input.js b/jscomp/build_tests/case2/input.js index ffe681fb27..7366124d8b 100644 --- a/jscomp/build_tests/case2/input.js +++ b/jscomp/build_tests/case2/input.js @@ -1,5 +1,5 @@ var p = require("child_process"); var assert = require("assert"); -var o = p.spawnSync(`rescript`, { encoding: "utf8", cwd: __dirname }); +var o = p.spawnSync(`../node_modules/.bin/rescript`, { encoding: "utf8", cwd: __dirname }); assert.ok(o.stderr.match(/different cases/).length > 0); diff --git a/jscomp/build_tests/case3/input.js b/jscomp/build_tests/case3/input.js index 661df795c0..1b8e37ef12 100644 --- a/jscomp/build_tests/case3/input.js +++ b/jscomp/build_tests/case3/input.js @@ -4,7 +4,7 @@ var p = require("child_process"); var fs = require("fs"); var path = require("path"); var assert = require("assert"); -p.spawnSync(`rescript`, { +p.spawnSync(`../node_modules/.bin/rescript`, { encoding: "utf8", cwd: __dirname, stdio: [0, 1, 2], diff --git a/jscomp/build_tests/case3/package-lock.json b/jscomp/build_tests/case3/package-lock.json new file mode 100644 index 0000000000..12f35536b2 --- /dev/null +++ b/jscomp/build_tests/case3/package-lock.json @@ -0,0 +1,66 @@ +{ + "name": "case3", + "version": "0.1.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "case3", + "version": "0.1.0", + "license": "MIT", + "dependencies": { + "rescript": "file:../../.." + }, + "devDependencies": { + "bs-platform": "^5.1.0-dev.1" + } + }, + "../../..": { + "version": "10.0.0", + "hasInstallScript": true, + "license": "SEE LICENSE IN LICENSE", + "bin": { + "bsc": "bsc", + "bsrefmt": "bsrefmt", + "bstracing": "lib/bstracing", + "rescript": "rescript" + }, + "devDependencies": { + "mocha": "^7.2.0", + "nyc": "^15.0.0" + } + }, + "node_modules/bs-platform": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bs-platform/-/bs-platform-5.2.1.tgz", + "integrity": "sha512-3ISP+RBC/NYILiJnphCY0W3RTYpQ11JGa2dBBLVug5fpFZ0qtSaL3ZplD8MyjNeXX2bC7xgrWfgBSn8Tc9om7Q==", + "dev": true, + "hasInstallScript": true, + "bin": { + "bsb": "lib/bsb", + "bsc": "lib/bsc", + "bsrefmt": "lib/bsrefmt", + "bstracing": "lib/bstracing" + } + }, + "node_modules/rescript": { + "resolved": "../../..", + "link": true + } + }, + "dependencies": { + "bs-platform": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bs-platform/-/bs-platform-5.2.1.tgz", + "integrity": "sha512-3ISP+RBC/NYILiJnphCY0W3RTYpQ11JGa2dBBLVug5fpFZ0qtSaL3ZplD8MyjNeXX2bC7xgrWfgBSn8Tc9om7Q==", + "dev": true + }, + "rescript": { + "version": "file:../../..", + "requires": { + "mocha": "^7.2.0", + "nyc": "^15.0.0" + } + } + } +} diff --git a/jscomp/build_tests/cmd/input.js b/jscomp/build_tests/cmd/input.js index 0d5be78cae..8d77d452f0 100644 --- a/jscomp/build_tests/cmd/input.js +++ b/jscomp/build_tests/cmd/input.js @@ -28,7 +28,7 @@ let d = bar () function evalCode(code) { var bsc_exe = p.spawnSync( - `bsc -bs-no-version-header -bs-cross-module-opt -w -40 -bs-eval '${code}'`, + `../node_modules/.bin/bsc -bs-no-version-header -bs-cross-module-opt -w -40 -bs-eval '${code}'`, { encoding: "utf8", shell: true, diff --git a/jscomp/build_tests/custom_namespace/input.js b/jscomp/build_tests/custom_namespace/input.js index 55b9d44ab1..548f318e05 100644 --- a/jscomp/build_tests/custom_namespace/input.js +++ b/jscomp/build_tests/custom_namespace/input.js @@ -3,7 +3,7 @@ var fs = require("fs"); var path = require("path"); var assert = require("assert"); -child_process.execSync(`rescript clean -with-deps && rescript build`, { +child_process.execSync(`../node_modules/.bin/rescript clean -with-deps && ../node_modules/.bin/rescript build`, { cwd: __dirname, stdio: [0, 1, 2], }); diff --git a/jscomp/build_tests/customize_namespace/input.js b/jscomp/build_tests/customize_namespace/input.js index 44c96f8844..ebc7633a81 100644 --- a/jscomp/build_tests/customize_namespace/input.js +++ b/jscomp/build_tests/customize_namespace/input.js @@ -2,6 +2,6 @@ var cp = require("child_process"); var assert = require("assert"); -cp.execSync(`rescript build`, { cwd: __dirname, encoding: "utf8" }); +cp.execSync(`../node_modules/.bin/rescript build`, { cwd: __dirname, encoding: "utf8" }); assert.equal(require("./src/demo.bs").v, 5); diff --git a/jscomp/build_tests/customize_namespace/package-lock.json b/jscomp/build_tests/customize_namespace/package-lock.json new file mode 100644 index 0000000000..8751bfe90a --- /dev/null +++ b/jscomp/build_tests/customize_namespace/package-lock.json @@ -0,0 +1,66 @@ +{ + "name": "a0003", + "version": "0.1.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "a0003", + "version": "0.1.0", + "license": "MIT", + "dependencies": { + "rescript": "file:../../.." + }, + "devDependencies": { + "bs-platform": "^5.0.0-dev.2" + } + }, + "../../..": { + "version": "10.0.0", + "hasInstallScript": true, + "license": "SEE LICENSE IN LICENSE", + "bin": { + "bsc": "bsc", + "bsrefmt": "bsrefmt", + "bstracing": "lib/bstracing", + "rescript": "rescript" + }, + "devDependencies": { + "mocha": "^7.2.0", + "nyc": "^15.0.0" + } + }, + "node_modules/bs-platform": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bs-platform/-/bs-platform-5.2.1.tgz", + "integrity": "sha512-3ISP+RBC/NYILiJnphCY0W3RTYpQ11JGa2dBBLVug5fpFZ0qtSaL3ZplD8MyjNeXX2bC7xgrWfgBSn8Tc9om7Q==", + "dev": true, + "hasInstallScript": true, + "bin": { + "bsb": "lib/bsb", + "bsc": "lib/bsc", + "bsrefmt": "lib/bsrefmt", + "bstracing": "lib/bstracing" + } + }, + "node_modules/rescript": { + "resolved": "../../..", + "link": true + } + }, + "dependencies": { + "bs-platform": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bs-platform/-/bs-platform-5.2.1.tgz", + "integrity": "sha512-3ISP+RBC/NYILiJnphCY0W3RTYpQ11JGa2dBBLVug5fpFZ0qtSaL3ZplD8MyjNeXX2bC7xgrWfgBSn8Tc9om7Q==", + "dev": true + }, + "rescript": { + "version": "file:../../..", + "requires": { + "mocha": "^7.2.0", + "nyc": "^15.0.0" + } + } + } +} diff --git a/jscomp/build_tests/cycle/input.js b/jscomp/build_tests/cycle/input.js index 80b0e59806..4004894445 100644 --- a/jscomp/build_tests/cycle/input.js +++ b/jscomp/build_tests/cycle/input.js @@ -4,7 +4,7 @@ const assert = require("assert"); const fs = require('fs') const path = require('path') -var output = cp.spawnSync(`rescript`, { encoding: "utf8", shell: true }); +var output = cp.spawnSync(`../node_modules/.bin/rescript`, { encoding: "utf8", shell: true }); assert(/dependency cycle/.test(output.stdout)); diff --git a/jscomp/build_tests/cycle/package-lock.json b/jscomp/build_tests/cycle/package-lock.json new file mode 100644 index 0000000000..c3599bd152 --- /dev/null +++ b/jscomp/build_tests/cycle/package-lock.json @@ -0,0 +1,67 @@ +{ + "name": "cycle", + "version": "0.1.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "cycle", + "version": "0.1.0", + "license": "MIT", + "dependencies": { + "rescript": "file:../../.." + }, + "devDependencies": { + "bs-platform": "^5.1.0-dev.1" + } + }, + "../../..": { + "name": "rescript", + "version": "10.0.0", + "hasInstallScript": true, + "license": "SEE LICENSE IN LICENSE", + "bin": { + "bsc": "bsc", + "bsrefmt": "bsrefmt", + "bstracing": "lib/bstracing", + "rescript": "rescript" + }, + "devDependencies": { + "mocha": "^7.2.0", + "nyc": "^15.0.0" + } + }, + "node_modules/bs-platform": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bs-platform/-/bs-platform-5.2.1.tgz", + "integrity": "sha512-3ISP+RBC/NYILiJnphCY0W3RTYpQ11JGa2dBBLVug5fpFZ0qtSaL3ZplD8MyjNeXX2bC7xgrWfgBSn8Tc9om7Q==", + "dev": true, + "hasInstallScript": true, + "bin": { + "bsb": "lib/bsb", + "bsc": "lib/bsc", + "bsrefmt": "lib/bsrefmt", + "bstracing": "lib/bstracing" + } + }, + "node_modules/rescript": { + "resolved": "../../..", + "link": true + } + }, + "dependencies": { + "bs-platform": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bs-platform/-/bs-platform-5.2.1.tgz", + "integrity": "sha512-3ISP+RBC/NYILiJnphCY0W3RTYpQ11JGa2dBBLVug5fpFZ0qtSaL3ZplD8MyjNeXX2bC7xgrWfgBSn8Tc9om7Q==", + "dev": true + }, + "rescript": { + "version": "file:../../..", + "requires": { + "mocha": "^7.2.0", + "nyc": "^15.0.0" + } + } + } +} diff --git a/jscomp/build_tests/cycle1/input.js b/jscomp/build_tests/cycle1/input.js index 18694dcb5b..5214729335 100644 --- a/jscomp/build_tests/cycle1/input.js +++ b/jscomp/build_tests/cycle1/input.js @@ -4,7 +4,7 @@ const assert = require("assert"); const fs = require('fs') const path = require('path') -var output = cp.spawnSync(`rescript`, { encoding: "utf8", shell: true }); +var output = cp.spawnSync(`../node_modules/.bin/rescript`, { encoding: "utf8", shell: true }); assert(/is dangling/.test(output.stdout)); diff --git a/jscomp/build_tests/cycle1/package-lock.json b/jscomp/build_tests/cycle1/package-lock.json new file mode 100644 index 0000000000..f7c8e37218 --- /dev/null +++ b/jscomp/build_tests/cycle1/package-lock.json @@ -0,0 +1,45 @@ +{ + "name": "cycle1", + "version": "0.1.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "cycle1", + "version": "0.1.0", + "license": "MIT", + "devDependencies": { + "rescript": "file:../../.." + } + }, + "../../..": { + "version": "10.0.0", + "dev": true, + "hasInstallScript": true, + "license": "SEE LICENSE IN LICENSE", + "bin": { + "bsc": "bsc", + "bsrefmt": "bsrefmt", + "bstracing": "lib/bstracing", + "rescript": "rescript" + }, + "devDependencies": { + "mocha": "^7.2.0", + "nyc": "^15.0.0" + } + }, + "node_modules/rescript": { + "resolved": "../../..", + "link": true + } + }, + "dependencies": { + "rescript": { + "version": "file:../../..", + "requires": { + "mocha": "^7.2.0", + "nyc": "^15.0.0" + } + } + } +} diff --git a/jscomp/build_tests/dev/input.js b/jscomp/build_tests/dev/input.js index 3977b7ebaf..4b15b7a4d5 100644 --- a/jscomp/build_tests/dev/input.js +++ b/jscomp/build_tests/dev/input.js @@ -2,6 +2,6 @@ var assert = require("assert"); var path = require("path"); var p = require("child_process"); -p.execSync(`rescript build`, { cwd: __dirname, shell: true, encoding: "utf8" }); +p.execSync(`npx rescript build`, { cwd: __dirname, shell: true, encoding: "utf8" }); var u = require("./examples/test.js"); assert.equal(path.basename(u.v), "demo.mldemo.ml"); diff --git a/jscomp/build_tests/devdeps/input.js b/jscomp/build_tests/devdeps/input.js index 8b152b9778..5b64267b14 100644 --- a/jscomp/build_tests/devdeps/input.js +++ b/jscomp/build_tests/devdeps/input.js @@ -7,7 +7,7 @@ var targetTwo = `src/demo.cmj`; cp.exec( - `rescript build -- -t commands ${targetOne}`, + `../node_modules/.bin/rescript build -- -t commands ${targetOne}`, { encoding: "ascii" }, function (err, output) { if (err !== null) { @@ -16,7 +16,7 @@ cp.exec( } assert(output.split("\n").some((x) => x.includes("weird"))); cp.exec( - `rescript build -- -t commands ${targetTwo}`, + `../node_modules/.bin/rescript build -- -t commands ${targetTwo}`, { encoding: "ascii" }, function (err, output) { if (err !== null) { diff --git a/jscomp/build_tests/devdeps/package-lock.json b/jscomp/build_tests/devdeps/package-lock.json new file mode 100644 index 0000000000..061004d428 --- /dev/null +++ b/jscomp/build_tests/devdeps/package-lock.json @@ -0,0 +1,66 @@ +{ + "name": "devdeps", + "version": "0.1.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "devdeps", + "version": "0.1.0", + "license": "MIT", + "dependencies": { + "rescript": "file:../../.." + }, + "devDependencies": { + "bs-platform": "^5.0.5" + } + }, + "../../..": { + "version": "10.0.0", + "hasInstallScript": true, + "license": "SEE LICENSE IN LICENSE", + "bin": { + "bsc": "bsc", + "bsrefmt": "bsrefmt", + "bstracing": "lib/bstracing", + "rescript": "rescript" + }, + "devDependencies": { + "mocha": "^7.2.0", + "nyc": "^15.0.0" + } + }, + "node_modules/bs-platform": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bs-platform/-/bs-platform-5.2.1.tgz", + "integrity": "sha512-3ISP+RBC/NYILiJnphCY0W3RTYpQ11JGa2dBBLVug5fpFZ0qtSaL3ZplD8MyjNeXX2bC7xgrWfgBSn8Tc9om7Q==", + "dev": true, + "hasInstallScript": true, + "bin": { + "bsb": "lib/bsb", + "bsc": "lib/bsc", + "bsrefmt": "lib/bsrefmt", + "bstracing": "lib/bstracing" + } + }, + "node_modules/rescript": { + "resolved": "../../..", + "link": true + } + }, + "dependencies": { + "bs-platform": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bs-platform/-/bs-platform-5.2.1.tgz", + "integrity": "sha512-3ISP+RBC/NYILiJnphCY0W3RTYpQ11JGa2dBBLVug5fpFZ0qtSaL3ZplD8MyjNeXX2bC7xgrWfgBSn8Tc9om7Q==", + "dev": true + }, + "rescript": { + "version": "file:../../..", + "requires": { + "mocha": "^7.2.0", + "nyc": "^15.0.0" + } + } + } +} diff --git a/jscomp/build_tests/devonly/input.js b/jscomp/build_tests/devonly/input.js index e3c53cc49e..007f38d764 100644 --- a/jscomp/build_tests/devonly/input.js +++ b/jscomp/build_tests/devonly/input.js @@ -1,4 +1,4 @@ //@ts-check var cp = require("child_process"); -cp.execSync(`rescript`, { cwd: __dirname, encoding: "utf8" }); +cp.execSync(`../node_modules/.bin/rescript`, { cwd: __dirname, encoding: "utf8" }); diff --git a/jscomp/build_tests/devonly/package-lock.json b/jscomp/build_tests/devonly/package-lock.json new file mode 100644 index 0000000000..4cd360c5cc --- /dev/null +++ b/jscomp/build_tests/devonly/package-lock.json @@ -0,0 +1,66 @@ +{ + "name": "devonly", + "version": "0.1.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "devonly", + "version": "0.1.0", + "license": "MIT", + "dependencies": { + "rescript": "file:../../.." + }, + "devDependencies": { + "bs-platform": "^5.1.0-dev.1" + } + }, + "../../..": { + "version": "10.0.0", + "hasInstallScript": true, + "license": "SEE LICENSE IN LICENSE", + "bin": { + "bsc": "bsc", + "bsrefmt": "bsrefmt", + "bstracing": "lib/bstracing", + "rescript": "rescript" + }, + "devDependencies": { + "mocha": "^7.2.0", + "nyc": "^15.0.0" + } + }, + "node_modules/bs-platform": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bs-platform/-/bs-platform-5.2.1.tgz", + "integrity": "sha512-3ISP+RBC/NYILiJnphCY0W3RTYpQ11JGa2dBBLVug5fpFZ0qtSaL3ZplD8MyjNeXX2bC7xgrWfgBSn8Tc9om7Q==", + "dev": true, + "hasInstallScript": true, + "bin": { + "bsb": "lib/bsb", + "bsc": "lib/bsc", + "bsrefmt": "lib/bsrefmt", + "bstracing": "lib/bstracing" + } + }, + "node_modules/rescript": { + "resolved": "../../..", + "link": true + } + }, + "dependencies": { + "bs-platform": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bs-platform/-/bs-platform-5.2.1.tgz", + "integrity": "sha512-3ISP+RBC/NYILiJnphCY0W3RTYpQ11JGa2dBBLVug5fpFZ0qtSaL3ZplD8MyjNeXX2bC7xgrWfgBSn8Tc9om7Q==", + "dev": true + }, + "rescript": { + "version": "file:../../..", + "requires": { + "mocha": "^7.2.0", + "nyc": "^15.0.0" + } + } + } +} diff --git a/jscomp/build_tests/duplicated_symlinked_packages/input.js b/jscomp/build_tests/duplicated_symlinked_packages/input.js index 99e2703073..94d2b2ff69 100644 --- a/jscomp/build_tests/duplicated_symlinked_packages/input.js +++ b/jscomp/build_tests/duplicated_symlinked_packages/input.js @@ -11,8 +11,8 @@ function postProcessErrorOutput (output) { output = output.replace(new RegExp(__dirname, 'gi'), '.') return output } -child_process.execSync(`rescript clean -with-deps`,{cwd:__dirname}) -child_process.exec('rescript', {cwd: __dirname}, (err, stdout, stderr) => { +child_process.execSync(`../node_modules/.bin/rescript clean -with-deps`,{cwd:__dirname}) +child_process.exec('../node_modules/.bin/rescript', {cwd: __dirname}, (err, stdout, stderr) => { const actualErrorOutput = postProcessErrorOutput(stderr.toString()) if (updateTests) { fs.writeFileSync(expectedFilePath, actualErrorOutput) diff --git a/jscomp/build_tests/exports/input.js b/jscomp/build_tests/exports/input.js index 908d73694a..e674a21204 100644 --- a/jscomp/build_tests/exports/input.js +++ b/jscomp/build_tests/exports/input.js @@ -1,6 +1,6 @@ var child_process = require("child_process"); -child_process.execSync(`rescript`, { +child_process.execSync(`../node_modules/.bin/rescript`, { cwd: __dirname, encoding: "utf8", stdio: [0, 1, 2], diff --git a/jscomp/build_tests/generator/input.js b/jscomp/build_tests/generator/input.js index 5cef52819f..d4729b2d3d 100644 --- a/jscomp/build_tests/generator/input.js +++ b/jscomp/build_tests/generator/input.js @@ -1,7 +1,7 @@ var child_process = require("child_process"); var assert = require("assert"); var output = child_process.spawnSync( - `rescript clean -with-deps && rescript build`, + `../node_modules/.bin/rescript clean -with-deps && ../node_modules/.bin/rescript build`, { cwd: __dirname, encoding: "utf8", diff --git a/jscomp/build_tests/generator/src/test.ml b/jscomp/build_tests/generator/src/test.ml index 7e4157a82e..d05cab6b4b 100644 --- a/jscomp/build_tests/generator/src/test.ml +++ b/jscomp/build_tests/generator/src/test.ml @@ -7,4 +7,4 @@ FS_VAL(readdirSync, string -> string array) *) - let ocaml = 3 + let ocaml = 3 \ No newline at end of file diff --git a/jscomp/build_tests/hyphen2/input.js b/jscomp/build_tests/hyphen2/input.js index b2d445cf36..2aaefa840f 100644 --- a/jscomp/build_tests/hyphen2/input.js +++ b/jscomp/build_tests/hyphen2/input.js @@ -1,3 +1,3 @@ var p = require("child_process"); -p.execSync(`rescript`, { cwd: __dirname, stdio: [0, 1, 2] }); +p.execSync(`../node_modules/.bin/rescript`, { cwd: __dirname, stdio: [0, 1, 2] }); diff --git a/jscomp/build_tests/in_source/input.js b/jscomp/build_tests/in_source/input.js index 0626ab5aa4..a48d743b77 100644 --- a/jscomp/build_tests/in_source/input.js +++ b/jscomp/build_tests/in_source/input.js @@ -7,7 +7,7 @@ var assert = require('assert') assert.throws( () => { - var output = child_process.execSync(`rescript build -regen`, + var output = child_process.execSync(`../node_modules/.bin/rescript build -regen`, { cwd: __dirname, encoding: 'utf8' } ) } diff --git a/jscomp/build_tests/install/input.js b/jscomp/build_tests/install/input.js index 5d245c1c55..137b20b88c 100644 --- a/jscomp/build_tests/install/input.js +++ b/jscomp/build_tests/install/input.js @@ -3,12 +3,12 @@ var fs = require("fs"); var path = require("path"); var assert = require("assert"); -p.spawnSync(`rescript`, [`clean`], { +p.spawnSync(`../node_modules/.bin/rescript`, [`clean`], { encoding: "utf8", cwd: __dirname, stdio: [0, 1, 2] }); -p.spawnSync(`rescript`, [`build`,`-install`], { +p.spawnSync(`../node_modules/.bin/rescript`, [`build`,`-install`], { encoding: "utf8", cwd: __dirname, stdio: [0, 1, 2] @@ -17,12 +17,12 @@ p.spawnSync(`rescript`, [`build`,`-install`], { var fooExists = fs.existsSync(path.join(__dirname, "lib", "ocaml", "Foo.cmi")); assert.ok(fooExists == false); -p.spawnSync(`rescript`, { +p.spawnSync(`../node_modules/.bin/rescript`, { encoding: "utf8", cwd: __dirname, stdio: [0, 1, 2] }); -p.spawnSync(`rescript` ,[`build`,`-install`], { +p.spawnSync(`../node_modules/.bin/rescript` ,[`build`,`-install`], { encoding: "utf8", cwd: __dirname, stdio: [0, 1, 2] diff --git a/jscomp/build_tests/install/package-lock.json b/jscomp/build_tests/install/package-lock.json new file mode 100644 index 0000000000..7c9713af75 --- /dev/null +++ b/jscomp/build_tests/install/package-lock.json @@ -0,0 +1,67 @@ +{ + "name": "install", + "version": "0.1.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "install", + "version": "0.1.0", + "hasInstallScript": true, + "license": "MIT", + "dependencies": { + "rescript": "file:../../.." + }, + "devDependencies": { + "bs-platform": "^5.1.0-dev.1" + } + }, + "../../..": { + "version": "10.0.0", + "hasInstallScript": true, + "license": "SEE LICENSE IN LICENSE", + "bin": { + "bsc": "bsc", + "bsrefmt": "bsrefmt", + "bstracing": "lib/bstracing", + "rescript": "rescript" + }, + "devDependencies": { + "mocha": "^7.2.0", + "nyc": "^15.0.0" + } + }, + "node_modules/bs-platform": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bs-platform/-/bs-platform-5.2.1.tgz", + "integrity": "sha512-3ISP+RBC/NYILiJnphCY0W3RTYpQ11JGa2dBBLVug5fpFZ0qtSaL3ZplD8MyjNeXX2bC7xgrWfgBSn8Tc9om7Q==", + "dev": true, + "hasInstallScript": true, + "bin": { + "bsb": "lib/bsb", + "bsc": "lib/bsc", + "bsrefmt": "lib/bsrefmt", + "bstracing": "lib/bstracing" + } + }, + "node_modules/rescript": { + "resolved": "../../..", + "link": true + } + }, + "dependencies": { + "bs-platform": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bs-platform/-/bs-platform-5.2.1.tgz", + "integrity": "sha512-3ISP+RBC/NYILiJnphCY0W3RTYpQ11JGa2dBBLVug5fpFZ0qtSaL3ZplD8MyjNeXX2bC7xgrWfgBSn8Tc9om7Q==", + "dev": true + }, + "rescript": { + "version": "file:../../..", + "requires": { + "mocha": "^7.2.0", + "nyc": "^15.0.0" + } + } + } +} diff --git a/jscomp/build_tests/jsxv/input.js b/jscomp/build_tests/jsxv/input.js index a82a2aa261..6118ebf35c 100644 --- a/jscomp/build_tests/jsxv/input.js +++ b/jscomp/build_tests/jsxv/input.js @@ -4,7 +4,7 @@ var assert = require("assert"); var p = require("child_process"); -var output = p.spawnSync(`rescript`, { +var output = p.spawnSync(`../node_modules/.bin/rescript`, { cwd: __dirname, encoding: "utf8", shell: true, diff --git a/jscomp/build_tests/namespace/input.js b/jscomp/build_tests/namespace/input.js index 51963b2eb8..0e96734b62 100644 --- a/jscomp/build_tests/namespace/input.js +++ b/jscomp/build_tests/namespace/input.js @@ -1,7 +1,7 @@ var child_process = require("child_process"); var fs = require("fs"); var path = require("path"); -child_process.execSync(`rescript clean -with-deps && rescript build`, { +child_process.execSync(`../node_modules/.bin/rescript clean -with-deps && ../node_modules/.bin/rescript build`, { cwd: __dirname, stdio: [0, 1, 2], }); diff --git a/jscomp/build_tests/nested/input.js b/jscomp/build_tests/nested/input.js index 072d610f2e..bd2e44e14c 100644 --- a/jscomp/build_tests/nested/input.js +++ b/jscomp/build_tests/nested/input.js @@ -2,7 +2,7 @@ var p = require("child_process"); var assert = require("assert"); var fs = require("fs"); var path = require("path"); -p.execSync(`rescript`, { cwd: __dirname, stdio: [0, 1, 2] }); +p.execSync(`../node_modules/.bin/rescript`, { cwd: __dirname, stdio: [0, 1, 2] }); var content = fs.readFileSync(path.join(__dirname, "src", "demo.js"), "utf8"); diff --git a/jscomp/build_tests/nnest/input.js b/jscomp/build_tests/nnest/input.js index a9f05c0d63..db7aa6cd66 100644 --- a/jscomp/build_tests/nnest/input.js +++ b/jscomp/build_tests/nnest/input.js @@ -4,7 +4,7 @@ var p = require("child_process"); var assert = require("assert"); var fs = require("fs"); var path = require("path"); -p.execSync(`rescript`, { cwd: __dirname, stdio: [0, 1, 2] }); +p.execSync(`../node_modules/.bin/rescript`, { cwd: __dirname, stdio: [0, 1, 2] }); var content = fs.readFileSync(path.join(__dirname, "src", "demo.js"), "utf8"); diff --git a/jscomp/build_tests/ns/input.js b/jscomp/build_tests/ns/input.js index cf1ae53bc9..be2e0e5325 100755 --- a/jscomp/build_tests/ns/input.js +++ b/jscomp/build_tests/ns/input.js @@ -1,3 +1,3 @@ var child_process = require("child_process"); -child_process.execSync(`rescript`, { cwd: __dirname, stdio: [0, 1, 2] }); +child_process.execSync(`../node_modules/.bin/rescript`, { cwd: __dirname, stdio: [0, 1, 2] }); diff --git a/jscomp/build_tests/package-lock.json b/jscomp/build_tests/package-lock.json index 48e341a095..2f2d955434 100644 --- a/jscomp/build_tests/package-lock.json +++ b/jscomp/build_tests/package-lock.json @@ -1,3 +1,44 @@ { - "lockfileVersion": 1 + "name": "build_tests", + "version": "0.1.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "build_tests", + "version": "0.1.0", + "dependencies": { + "rescript": "file:../.." + } + }, + "../..": { + "name": "rescript", + "version": "10.0.0", + "hasInstallScript": true, + "license": "SEE LICENSE IN LICENSE", + "bin": { + "bsc": "bsc", + "bsrefmt": "bsrefmt", + "bstracing": "lib/bstracing", + "rescript": "rescript" + }, + "devDependencies": { + "mocha": "^7.2.0", + "nyc": "^15.0.0" + } + }, + "node_modules/rescript": { + "resolved": "../..", + "link": true + } + }, + "dependencies": { + "rescript": { + "version": "file:../..", + "requires": { + "mocha": "^7.2.0", + "nyc": "^15.0.0" + } + } + } } diff --git a/jscomp/build_tests/package.json b/jscomp/build_tests/package.json index 18a1e415e5..433aacdfba 100644 --- a/jscomp/build_tests/package.json +++ b/jscomp/build_tests/package.json @@ -1,3 +1,7 @@ { - "dependencies": {} + "name": "build_tests", + "version": "0.1.0", + "dependencies": { + "rescript": "file:../.." + } } diff --git a/jscomp/build_tests/pinned/input.js b/jscomp/build_tests/pinned/input.js index 5ee884ea44..6e0518e75b 100644 --- a/jscomp/build_tests/pinned/input.js +++ b/jscomp/build_tests/pinned/input.js @@ -11,13 +11,13 @@ function checkSpawnOut(out) { } // Clean beforehand to force its dependency to be rebuilt -var out = cp.spawnSync(`npx rescript clean`, { +var out = cp.spawnSync(`../node_modules/.bin/rescript clean`, { encoding: "utf-8", shell: true, }); checkSpawnOut(out); -var out = cp.spawnSync(`npx rescript build`, { +var out = cp.spawnSync(`../node_modules/.bin/rescript build`, { encoding: "utf-8", shell: true, }); @@ -29,7 +29,7 @@ assert.ok( ); var out2 = cp.spawnSync( - `npx rescript build -- -C node_modules/test/lib/bs/ -t targets`, + `../node_modules/.bin/rescript build -- -C node_modules/test/lib/bs/ -t targets`, { encoding: "utf-8", shell: true, diff --git a/jscomp/build_tests/pinned/package-lock.json b/jscomp/build_tests/pinned/package-lock.json new file mode 100644 index 0000000000..0131ec89ca --- /dev/null +++ b/jscomp/build_tests/pinned/package-lock.json @@ -0,0 +1,66 @@ +{ + "name": "warnerror", + "version": "0.1.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "warnerror", + "version": "0.1.0", + "license": "MIT", + "dependencies": { + "rescript": "file:../../.." + }, + "devDependencies": { + "bs-platform": "^8.4.0-dev.1" + } + }, + "../../..": { + "version": "10.0.0", + "hasInstallScript": true, + "license": "SEE LICENSE IN LICENSE", + "bin": { + "bsc": "bsc", + "bsrefmt": "bsrefmt", + "bstracing": "lib/bstracing", + "rescript": "rescript" + }, + "devDependencies": { + "mocha": "^7.2.0", + "nyc": "^15.0.0" + } + }, + "node_modules/bs-platform": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/bs-platform/-/bs-platform-8.4.2.tgz", + "integrity": "sha512-9q7S4/LLV/a68CweN382NJdCCr/lOSsJR3oQYnmPK98ChfO/AdiA3lYQkQTp6T+U0I5Z5RypUAUprNstwDtMDQ==", + "dev": true, + "hasInstallScript": true, + "bin": { + "bsb": "bsb", + "bsc": "bsc", + "bsrefmt": "bsrefmt", + "bstracing": "lib/bstracing" + } + }, + "node_modules/rescript": { + "resolved": "../../..", + "link": true + } + }, + "dependencies": { + "bs-platform": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/bs-platform/-/bs-platform-8.4.2.tgz", + "integrity": "sha512-9q7S4/LLV/a68CweN382NJdCCr/lOSsJR3oQYnmPK98ChfO/AdiA3lYQkQTp6T+U0I5Z5RypUAUprNstwDtMDQ==", + "dev": true + }, + "rescript": { + "version": "file:../../..", + "requires": { + "mocha": "^7.2.0", + "nyc": "^15.0.0" + } + } + } +} diff --git a/jscomp/build_tests/post-build/input.js b/jscomp/build_tests/post-build/input.js index 82c01bbc4b..340b72a94c 100644 --- a/jscomp/build_tests/post-build/input.js +++ b/jscomp/build_tests/post-build/input.js @@ -1,7 +1,7 @@ var child_process = require("child_process"); var assert = require("assert"); -var out = child_process.spawnSync(`rescript`, { encoding: "utf8" }); +var out = child_process.spawnSync(`../node_modules/.bin/rescript`, { encoding: "utf8" }); if (out.status !== 0) { assert.fail(out.stdout + out.stderr); diff --git a/jscomp/build_tests/post-build/package-lock.json b/jscomp/build_tests/post-build/package-lock.json new file mode 100644 index 0000000000..86738a216c --- /dev/null +++ b/jscomp/build_tests/post-build/package-lock.json @@ -0,0 +1,66 @@ +{ + "name": "post-build", + "version": "0.1.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "post-build", + "version": "0.1.0", + "license": "MIT", + "dependencies": { + "rescript": "file:../../.." + }, + "devDependencies": { + "bs-platform": "^8.3.0-dev.2" + } + }, + "../../..": { + "version": "10.0.0", + "hasInstallScript": true, + "license": "SEE LICENSE IN LICENSE", + "bin": { + "bsc": "bsc", + "bsrefmt": "bsrefmt", + "bstracing": "lib/bstracing", + "rescript": "rescript" + }, + "devDependencies": { + "mocha": "^7.2.0", + "nyc": "^15.0.0" + } + }, + "node_modules/bs-platform": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/bs-platform/-/bs-platform-8.4.2.tgz", + "integrity": "sha512-9q7S4/LLV/a68CweN382NJdCCr/lOSsJR3oQYnmPK98ChfO/AdiA3lYQkQTp6T+U0I5Z5RypUAUprNstwDtMDQ==", + "dev": true, + "hasInstallScript": true, + "bin": { + "bsb": "bsb", + "bsc": "bsc", + "bsrefmt": "bsrefmt", + "bstracing": "lib/bstracing" + } + }, + "node_modules/rescript": { + "resolved": "../../..", + "link": true + } + }, + "dependencies": { + "bs-platform": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/bs-platform/-/bs-platform-8.4.2.tgz", + "integrity": "sha512-9q7S4/LLV/a68CweN382NJdCCr/lOSsJR3oQYnmPK98ChfO/AdiA3lYQkQTp6T+U0I5Z5RypUAUprNstwDtMDQ==", + "dev": true + }, + "rescript": { + "version": "file:../../..", + "requires": { + "mocha": "^7.2.0", + "nyc": "^15.0.0" + } + } + } +} diff --git a/jscomp/build_tests/priv/input.js b/jscomp/build_tests/priv/input.js index 2603769087..0c9e41f864 100644 --- a/jscomp/build_tests/priv/input.js +++ b/jscomp/build_tests/priv/input.js @@ -1,7 +1,7 @@ var child_process = require("child_process"); var output = child_process.spawnSync( - `rescript clean -with-deps && rescript build`, + `npx rescript clean -with-deps && npx rescript build`, { cwd: __dirname, shell: true, encoding: "utf8" } ); diff --git a/jscomp/build_tests/priv2/input.js b/jscomp/build_tests/priv2/input.js index 4873fc96e5..18d41b69ae 100644 --- a/jscomp/build_tests/priv2/input.js +++ b/jscomp/build_tests/priv2/input.js @@ -3,7 +3,7 @@ var assert = require("assert"); assert.throws( () => { - child_process.execSync(`rescript clean -with-deps && rescript build`, { + child_process.execSync(`../node_modules/.bin/rescript clean -with-deps && ../node_modules/.bin/rescript build`, { cwd: __dirname, encoding: "utf8", }); diff --git a/jscomp/build_tests/react_ppx/input.js b/jscomp/build_tests/react_ppx/input.js index 89d2a39ac7..db87a11751 100644 --- a/jscomp/build_tests/react_ppx/input.js +++ b/jscomp/build_tests/react_ppx/input.js @@ -1,4 +1,4 @@ //@ts-check var cp = require("child_process"); -cp.execSync(`rescript`, { cwd: __dirname, stdio: [0, 1, 2] }); +cp.execSync(`../node_modules/.bin/rescript`, { cwd: __dirname, stdio: [0, 1, 2] }); diff --git a/jscomp/build_tests/rerror/input.js b/jscomp/build_tests/rerror/input.js index 1118108265..dbc4bf2a43 100644 --- a/jscomp/build_tests/rerror/input.js +++ b/jscomp/build_tests/rerror/input.js @@ -1,11 +1,11 @@ var child_process = require("child_process"); var assert = require("assert"); -child_process.spawnSync(`rescript clean -with-deps`, { +child_process.spawnSync(`../node_modules/.bin/rescript clean -with-deps`, { cwd: __dirname, encoding: "utf8", stdio: [0, 1, 2], }); -var o = child_process.spawnSync(`rescript `, { +var o = child_process.spawnSync(`../node_modules/.bin/rescript `, { cwd: __dirname, encoding: "utf8", shell: true, diff --git a/jscomp/build_tests/scoped_ppx/input.js b/jscomp/build_tests/scoped_ppx/input.js index 582ba2c8cd..ee78f94a29 100644 --- a/jscomp/build_tests/scoped_ppx/input.js +++ b/jscomp/build_tests/scoped_ppx/input.js @@ -1,8 +1,8 @@ var cp = require("child_process"); var assert = require("assert"); -cp.execSync(`rescript`, { cwd: __dirname, stdio: [0, 1, 2], encoding: "utf8" }); +cp.execSync(`../node_modules/.bin/rescript`, { cwd: __dirname, stdio: [0, 1, 2], encoding: "utf8" }); -var output = cp.execSync(`rescript build -- -t commands src/hello.ast`, { +var output = cp.execSync(`../node_modules/.bin/rescript build -- -t commands src/hello.ast`, { cwd: __dirname, encoding: "utf8", }); diff --git a/jscomp/build_tests/scoped_ppx/package-lock.json b/jscomp/build_tests/scoped_ppx/package-lock.json new file mode 100644 index 0000000000..a4b804af8d --- /dev/null +++ b/jscomp/build_tests/scoped_ppx/package-lock.json @@ -0,0 +1,40 @@ +{ + "name": "scoped_ppx", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "dependencies": { + "rescript": "file:../../.." + } + }, + "../../..": { + "version": "10.0.0", + "hasInstallScript": true, + "license": "SEE LICENSE IN LICENSE", + "bin": { + "bsc": "bsc", + "bsrefmt": "bsrefmt", + "bstracing": "lib/bstracing", + "rescript": "rescript" + }, + "devDependencies": { + "mocha": "^7.2.0", + "nyc": "^15.0.0" + } + }, + "node_modules/rescript": { + "resolved": "../../..", + "link": true + } + }, + "dependencies": { + "rescript": { + "version": "file:../../..", + "requires": { + "mocha": "^7.2.0", + "nyc": "^15.0.0" + } + } + } +} diff --git a/jscomp/build_tests/scoped_ppx/package.json b/jscomp/build_tests/scoped_ppx/package.json new file mode 100644 index 0000000000..273a82ed16 --- /dev/null +++ b/jscomp/build_tests/scoped_ppx/package.json @@ -0,0 +1,5 @@ +{ + "dependencies": { + "rescript": "file:../../.." + } +} diff --git a/jscomp/build_tests/top/input.js b/jscomp/build_tests/top/input.js index 351e063d83..6855c9ef05 100644 --- a/jscomp/build_tests/top/input.js +++ b/jscomp/build_tests/top/input.js @@ -2,7 +2,7 @@ var cp = require("child_process"); var path = require("path"); var assert = require("assert"); -var output = cp.execSync(`rescript build -- -t targets`, { +var output = cp.execSync(`../node_modules/.bin/rescript build -- -t targets`, { encoding: "utf8", cwd: __dirname }); diff --git a/jscomp/build_tests/top/package-lock.json b/jscomp/build_tests/top/package-lock.json new file mode 100644 index 0000000000..8a1a9d2c1a --- /dev/null +++ b/jscomp/build_tests/top/package-lock.json @@ -0,0 +1,66 @@ +{ + "name": "a0002", + "version": "0.1.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "a0002", + "version": "0.1.0", + "license": "MIT", + "dependencies": { + "rescript": "file:../../.." + }, + "devDependencies": { + "bs-platform": "^5.0.5" + } + }, + "../../..": { + "version": "10.0.0", + "hasInstallScript": true, + "license": "SEE LICENSE IN LICENSE", + "bin": { + "bsc": "bsc", + "bsrefmt": "bsrefmt", + "bstracing": "lib/bstracing", + "rescript": "rescript" + }, + "devDependencies": { + "mocha": "^7.2.0", + "nyc": "^15.0.0" + } + }, + "node_modules/bs-platform": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bs-platform/-/bs-platform-5.2.1.tgz", + "integrity": "sha512-3ISP+RBC/NYILiJnphCY0W3RTYpQ11JGa2dBBLVug5fpFZ0qtSaL3ZplD8MyjNeXX2bC7xgrWfgBSn8Tc9om7Q==", + "dev": true, + "hasInstallScript": true, + "bin": { + "bsb": "lib/bsb", + "bsc": "lib/bsc", + "bsrefmt": "lib/bsrefmt", + "bstracing": "lib/bstracing" + } + }, + "node_modules/rescript": { + "resolved": "../../..", + "link": true + } + }, + "dependencies": { + "bs-platform": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bs-platform/-/bs-platform-5.2.1.tgz", + "integrity": "sha512-3ISP+RBC/NYILiJnphCY0W3RTYpQ11JGa2dBBLVug5fpFZ0qtSaL3ZplD8MyjNeXX2bC7xgrWfgBSn8Tc9om7Q==", + "dev": true + }, + "rescript": { + "version": "file:../../..", + "requires": { + "mocha": "^7.2.0", + "nyc": "^15.0.0" + } + } + } +} diff --git a/jscomp/build_tests/unicode/input.js b/jscomp/build_tests/unicode/input.js index 8124b4a5ea..9441e531e8 100644 --- a/jscomp/build_tests/unicode/input.js +++ b/jscomp/build_tests/unicode/input.js @@ -1,7 +1,7 @@ //@ts-check var child_process = require("child_process"); -console.log(child_process.execSync(`rescript`, { encoding: "utf8" })); +console.log(child_process.execSync(`../node_modules/.bin/rescript`, { encoding: "utf8" })); var fs = require("fs"); var path = require("path"); diff --git a/jscomp/build_tests/warnerror/input.js b/jscomp/build_tests/warnerror/input.js index f7c99d66cc..f8cabd1490 100644 --- a/jscomp/build_tests/warnerror/input.js +++ b/jscomp/build_tests/warnerror/input.js @@ -1,7 +1,7 @@ var cp = require("child_process"); var assert = require("assert"); -var out = cp.spawnSync(`npx rescript build`, { +var out = cp.spawnSync(`../node_modules/.bin/rescript build`, { encoding: "utf-8", shell: true, }); diff --git a/jscomp/build_tests/weird_names/input.js b/jscomp/build_tests/weird_names/input.js index 982577155c..26ffa256e0 100644 --- a/jscomp/build_tests/weird_names/input.js +++ b/jscomp/build_tests/weird_names/input.js @@ -2,7 +2,7 @@ var cp = require("child_process"); var assert = require("assert"); var path = require("path"); -var out = cp.spawnSync(`rescript`, { encoding: "utf8" }); +var out = cp.spawnSync(`../node_modules/.bin/rescript`, { encoding: "utf8" }); console.log(out.stdout); if (out.stderr !== "") { diff --git a/jscomp/build_tests/weird_names/package-lock.json b/jscomp/build_tests/weird_names/package-lock.json new file mode 100644 index 0000000000..5f3d0c624a --- /dev/null +++ b/jscomp/build_tests/weird_names/package-lock.json @@ -0,0 +1,66 @@ +{ + "name": "weird_names", + "version": "0.1.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "weird_names", + "version": "0.1.0", + "license": "MIT", + "dependencies": { + "rescript": "file:../../.." + }, + "devDependencies": { + "bs-platform": "^8.3.0-dev.2" + } + }, + "../../..": { + "version": "10.0.0", + "hasInstallScript": true, + "license": "SEE LICENSE IN LICENSE", + "bin": { + "bsc": "bsc", + "bsrefmt": "bsrefmt", + "bstracing": "lib/bstracing", + "rescript": "rescript" + }, + "devDependencies": { + "mocha": "^7.2.0", + "nyc": "^15.0.0" + } + }, + "node_modules/bs-platform": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/bs-platform/-/bs-platform-8.4.2.tgz", + "integrity": "sha512-9q7S4/LLV/a68CweN382NJdCCr/lOSsJR3oQYnmPK98ChfO/AdiA3lYQkQTp6T+U0I5Z5RypUAUprNstwDtMDQ==", + "dev": true, + "hasInstallScript": true, + "bin": { + "bsb": "bsb", + "bsc": "bsc", + "bsrefmt": "bsrefmt", + "bstracing": "lib/bstracing" + } + }, + "node_modules/rescript": { + "resolved": "../../..", + "link": true + } + }, + "dependencies": { + "bs-platform": { + "version": "8.4.2", + "resolved": "https://registry.npmjs.org/bs-platform/-/bs-platform-8.4.2.tgz", + "integrity": "sha512-9q7S4/LLV/a68CweN382NJdCCr/lOSsJR3oQYnmPK98ChfO/AdiA3lYQkQTp6T+U0I5Z5RypUAUprNstwDtMDQ==", + "dev": true + }, + "rescript": { + "version": "file:../../..", + "requires": { + "mocha": "^7.2.0", + "nyc": "^15.0.0" + } + } + } +} diff --git a/jscomp/build_tests/white space/input.js b/jscomp/build_tests/white space/input.js index 89c5943f9f..8bb477f18d 100644 --- a/jscomp/build_tests/white space/input.js +++ b/jscomp/build_tests/white space/input.js @@ -3,7 +3,7 @@ var path = require("path"); var assert = require("assert"); var p = require("child_process"); try { - p.execSync(`rescript build`, { + p.execSync(`../node_modules/.bin/rescript build`, { cwd: __dirname, encoding: "utf8", stdio: [0, 1, 2], @@ -20,7 +20,7 @@ try { .then((output) => { // console.log(output.code) assert.ok(output.code.length < 1000, "bundled success"); - p.execSync(`rescript clean -with-deps`); + p.execSync(`../node_modules/.bin/rescript clean -with-deps`); }); } finally { } diff --git a/jscomp/build_tests/x-y/input.js b/jscomp/build_tests/x-y/input.js index db3d31a078..29fd9ad307 100644 --- a/jscomp/build_tests/x-y/input.js +++ b/jscomp/build_tests/x-y/input.js @@ -1,3 +1,3 @@ var p = require('child_process') -p.execSync(`rescript`) \ No newline at end of file +p.execSync(`../node_modules/.bin/rescript`) \ No newline at end of file diff --git a/jscomp/build_tests/xpkg/input.js b/jscomp/build_tests/xpkg/input.js index 7572ccedb9..d5c25b9856 100644 --- a/jscomp/build_tests/xpkg/input.js +++ b/jscomp/build_tests/xpkg/input.js @@ -2,7 +2,7 @@ var p = require('child_process') var assert = require('assert') var fs = require('fs') try { - var output = p.spawnSync(`rescript build -regen`, { shell: true, encoding: 'utf8' }) + var output = p.spawnSync(`../node_modules/.bin/rescript build -regen`, { shell: true, encoding: 'utf8' }) assert.ok(output.stderr.match(/reserved package name/)) } diff --git a/jscomp/build_tests/zerocycle/input.js b/jscomp/build_tests/zerocycle/input.js index cd2db2e5b4..2adf7c3000 100644 --- a/jscomp/build_tests/zerocycle/input.js +++ b/jscomp/build_tests/zerocycle/input.js @@ -1,4 +1,4 @@ var p = require("child_process"); var assert = require("assert"); -var out = p.spawnSync(`rescript`, { encoding: "utf8", cwd: __dirname }); +var out = p.spawnSync(`../node_modules/.bin/rescript`, { encoding: "utf8", cwd: __dirname }); assert(out.status == 0) diff --git a/jscomp/build_tests/zerocycle/package-lock.json b/jscomp/build_tests/zerocycle/package-lock.json new file mode 100644 index 0000000000..3916cf1b08 --- /dev/null +++ b/jscomp/build_tests/zerocycle/package-lock.json @@ -0,0 +1,65 @@ +{ + "name": "zerocycle", + "version": "0.1.0", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "zerocycle", + "version": "0.1.0", + "license": "MIT", + "dependencies": { + "rescript": "file:../../.." + }, + "devDependencies": { + "bs-platform": "^2.0.1" + } + }, + "../../..": { + "version": "10.0.0", + "hasInstallScript": true, + "license": "SEE LICENSE IN LICENSE", + "bin": { + "bsc": "bsc", + "bsrefmt": "bsrefmt", + "bstracing": "lib/bstracing", + "rescript": "rescript" + }, + "devDependencies": { + "mocha": "^7.2.0", + "nyc": "^15.0.0" + } + }, + "node_modules/bs-platform": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/bs-platform/-/bs-platform-2.2.3.tgz", + "integrity": "sha512-VnliXW3HPnrYJkCRTnSfl1AsGYFnQrLhTWtm/lbqrQrC1lcwuG3+KMHK7VULOos48wXO/NxpoCDF8/lqV1sqCw==", + "dev": true, + "hasInstallScript": true, + "bin": { + "bsb": "lib/bsb", + "bsc": "lib/bsc", + "bsrefmt": "lib/bsrefmt" + } + }, + "node_modules/rescript": { + "resolved": "../../..", + "link": true + } + }, + "dependencies": { + "bs-platform": { + "version": "2.2.3", + "resolved": "https://registry.npmjs.org/bs-platform/-/bs-platform-2.2.3.tgz", + "integrity": "sha512-VnliXW3HPnrYJkCRTnSfl1AsGYFnQrLhTWtm/lbqrQrC1lcwuG3+KMHK7VULOos48wXO/NxpoCDF8/lqV1sqCw==", + "dev": true + }, + "rescript": { + "version": "file:../../..", + "requires": { + "mocha": "^7.2.0", + "nyc": "^15.0.0" + } + } + } +} diff --git a/package.json b/package.json index 9d5f200fb2..e2ab1c6ba0 100644 --- a/package.json +++ b/package.json @@ -11,7 +11,7 @@ "rescript": "rescript" }, "scripts": { - "test": "node scripts/ciTest.js -all", + "test": "node scripts/ciTest.js -all", "test-theme": "node scripts/ciTest.js -theme", "test-bsb": "node scripts/ciTest.js -bsb", "test-ocaml": "node scripts/ciTest.js -ounit", diff --git a/scripts/ciTest.js b/scripts/ciTest.js index c7828eb6c4..d96973b937 100644 --- a/scripts/ciTest.js +++ b/scripts/ciTest.js @@ -3,17 +3,12 @@ var cp = require("child_process"); var path = require("path"); var fs = require("fs"); -var installGlobal = false; var ounitTest = false; var mochaTest = false; var themeTest = false; var bsbTest = false; var all = false; -if (process.argv.includes("-install-global")) { - installGlobal = true; -} - if (process.argv.includes("-ounit")) { ounitTest = true; } @@ -34,7 +29,6 @@ if (process.argv.includes("-all")) { all = true; } if (all) { - installGlobal = true; ounitTest = true; mochaTest = true; themeTest = true; @@ -108,22 +102,10 @@ function runTests() { }); } - // set up global directory properly using - // npm config set prefix '~/.npm-global' - if (installGlobal) { - console.log("install bucklescript globally"); - cp.execSync("sudo npm i -g --unsafe-perm . && bsc -bs-internal-check", { - cwd: path.join(__dirname, ".."), - stdio: [0, 1, 2], - }); - } - - - if (bsbTest) { console.log("Doing build_tests"); var buildTestDir = path.join(__dirname, "..", "jscomp", "build_tests"); - cp.execSync(`npm link rescript`, { + cp.execSync(`npm link ../..`, { cwd: buildTestDir, stdio: [0, 1, 2], encoding: "utf8", @@ -138,7 +120,7 @@ function runTests() { console.warn(`input.js does not exist in ${testDir}`); } else { // note existsSync test already ensure that it is a directory - cp.exec(`node input.js`, { cwd: testDir, encoding: "utf8" }, function ( + cp.execSync(`node input.js`, { cwd: testDir, encoding: "utf8" }, function ( error, stdout, stderr From e98521d23f0a959d9abf6c52cfb18a7b2ebce5b3 Mon Sep 17 00:00:00 2001 From: Cristiano Calcagno Date: Sat, 11 Jun 2022 03:45:28 +0200 Subject: [PATCH 2/3] Try all tests on arm. --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 91a9d2a1c5..0a2755a367 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -62,7 +62,7 @@ jobs: - name: Run tests (macos-arm) if: matrix.os == 'macos-arm' - run: opam exec -- node scripts/ciTest.js -ounit -mocha -theme + run: opam exec -- node scripts/ciTest.js -all - name: Run tests (Linux) if: runner.os == 'Linux' From d85f05c344d65a268b4e3bdef2149fcd62b5e4da Mon Sep 17 00:00:00 2001 From: Cristiano Calcagno Date: Sat, 11 Jun 2022 03:49:06 +0200 Subject: [PATCH 3/3] Try full tests on linux. --- .github/workflows/ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 0a2755a367..7d40441b6a 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -66,7 +66,7 @@ jobs: - name: Run tests (Linux) if: runner.os == 'Linux' - run: opam exec -- node scripts/ciTest.js -install-global -ounit -mocha -theme + run: opam exec -- node scripts/ciTest.js -all - name: Run tests (Windows) if: runner.os == 'Windows'