aports/community/njs/fixed-custom-NJS_BUILD_DIR-value-support.patch
2021-12-29 21:18:39 +01:00

357 lines
11 KiB
Diff
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

Patch-Source: https://github.com/nginx/njs/issues/454#issuecomment-1002699260
# HG changeset patch
# User Dmitry Volyntsev <xeioex@nginx.com>
# Date 1640797007 0
# Wed Dec 29 16:56:47 2021 +0000
# Node ID 1ad65f9d50f57e702164860fbb4d6d2cfd7ab1b2
# Parent 001bb59dc3a81c37d8879b795d3c9b92055b5e74
Configure: fixed custom NJS_BUILD_DIR values support.
The issue was introduced in 4d4657128baf (0.7.1).
This closes #454 issue on Github.
diff --git a/auto/make b/auto/make
--- a/auto/make
+++ b/auto/make
@@ -7,8 +7,8 @@
echo "creating $NJS_MAKEFILE"
mkdir -p $NJS_BUILD_DIR/src
-mkdir -p $NJS_BUILD_DIR/build
mkdir -p $NJS_BUILD_DIR/external
+mkdir -p $NJS_BUILD_DIR/$NJS_BUILD_DIR
mkdir -p $NJS_BUILD_DIR/test
njs_modules_c=$NJS_BUILD_DIR/njs_modules.c
# HG changeset patch
# User Dmitry Volyntsev <xeioex@nginx.com>
# Date 1640798395 0
# Wed Dec 29 17:19:55 2021 +0000
# Node ID d11d962c40cdea4682298337d6bb65491e32bc88
# Parent 1ad65f9d50f57e702164860fbb4d6d2cfd7ab1b2
Tests: fixed "fs" tests with custom build directory.
diff --git a/test/fs/methods.t.js b/test/fs/methods.t.js
--- a/test/fs/methods.t.js
+++ b/test/fs/methods.t.js
@@ -9,7 +9,7 @@ function p(args, default_opts) {
let fname = params.args[0];
if (fname[0] == '@') {
- let gen = `build/test/fs_test_${Math.round(Math.random() * 1000000)}`;
+ let gen = `${test_dir}/fs_test_${Math.round(Math.random() * 1000000)}`;
params.args = params.args.map(v => v);
params.args[0] = gen + fname.slice(1);
}
@@ -368,9 +368,9 @@ async function realpath_test(params) {
}
let realpath_tests = () => [
- { args: ["build/test/.."],
- check: (data) => data.endsWith("build") },
- { args: ["build/test/", {encoding:'buffer'}],
+ { args: ["test/fs/.."],
+ check: (data) => data.endsWith("test") },
+ { args: ["test/fs/ascii", {encoding:'buffer'}],
check: (data) => data instanceof Buffer },
];
@@ -478,14 +478,14 @@ let stat_tests = () => [
return true;
} },
- { args: ["build/"],
+ { args: ["test/fs/ascii"],
check: (st) => contains(Object.keys(st),
[ "atime", "atimeMs", "birthtime", "birthtimeMs",
"blksize", "blocks", "ctime", "ctimeMs", "dev",
"gid", "ino", "mode", "mtime", "mtimeMs","nlink",
"rdev", "size", "uid" ]) },
- { args: ["build/"],
+ { args: ["test/fs/ascii"],
check: (st) => Object.keys(st).every(p => {
let v = st[p];
if (p == 'atime' || p == 'ctime' || p == 'mtime' || p == 'birthtime') {
@@ -503,7 +503,7 @@ let stat_tests = () => [
return true;
}) },
- { args: ["build/"],
+ { args: ["test/fs/ascii"],
check: (st) => ['atime', 'birthtime', 'ctime', 'mtime'].every(p => {
let date = st[p].valueOf();
let num = st[p + 'Ms'];
@@ -515,7 +515,7 @@ let stat_tests = () => [
return true;
}) },
- { args: ["build/"],
+ { args: [test_dir],
check: (st) => ['isBlockDevice',
'isCharacterDevice',
'isDirectory',
diff --git a/test/fs/promises_01.t.js b/test/fs/promises_01.t.js
--- a/test/fs/promises_01.t.js
+++ b/test/fs/promises_01.t.js
@@ -3,7 +3,7 @@ includes: [compareArray.js, compatFs.js]
flags: [async]
---*/
-var fname = 'build/test/fs_promises_01';
+var fname = `${test_dir}/fs_promises_01`;
let stages = [];
diff --git a/test/fs/promises_02.t.js b/test/fs/promises_02.t.js
--- a/test/fs/promises_02.t.js
+++ b/test/fs/promises_02.t.js
@@ -3,7 +3,7 @@ includes: [compareArray.js, compatFs.js]
flags: [async]
---*/
-var fname = 'build/test/fs_promises_02';
+var fname = `${test_dir}/fs_promises_02`;
var testSync = new Promise((resolve, reject) => {
var failed = false;
diff --git a/test/fs/promises_03.t.js b/test/fs/promises_03.t.js
--- a/test/fs/promises_03.t.js
+++ b/test/fs/promises_03.t.js
@@ -3,7 +3,7 @@ includes: [compareArray.js, compatFs.js]
flags: [async]
---*/
-var fname = 'build/test/fs_promises_03';
+var fname = `${test_dir}/fs_promises_03`;
var testSync = () => new Promise((resolve, reject) => {
try {
diff --git a/test/fs/promises_04.t.js b/test/fs/promises_04.t.js
--- a/test/fs/promises_04.t.js
+++ b/test/fs/promises_04.t.js
@@ -3,10 +3,9 @@ includes: [compareArray.js, compatFs.js]
flags: [async]
---*/
-var dname = 'build/test/';
-var fname = dname + 'fs_promises_04';
-var fname_utf8 = dname + 'fs_promises_αβγ_04';
-var lname = dname + 'fs_promises_04_lnk';
+var fname = `${test_dir}/fs_promises_04`;
+var fname_utf8 = `${test_dir}/fs_promises_αβγ_04`;
+var lname = `${test_dir}/fs_promises_lnk_04`;
var testSync = () => new Promise((resolve, reject) => {
try {
diff --git a/test/fs/promises_05.t.js b/test/fs/promises_05.t.js
--- a/test/fs/promises_05.t.js
+++ b/test/fs/promises_05.t.js
@@ -3,9 +3,8 @@ includes: [compareArray.js, compatFs.js]
flags: [async]
---*/
-var rname = 'build/test/';
-var dname = rname + 'fs_promises_05';
-var dname_utf8 = rname + 'fs_promises_αβγ_05';
+var dname = `${test_dir}/fs_promises_05`;
+var dname_utf8 = `${test_dir}/fs_promises_αβγ_05`;
var fname = (d) => d + '/fs_promises_05_file';
var testSync = () => new Promise((resolve, reject) => {
diff --git a/test/fs/promises_06.t.js b/test/fs/promises_06.t.js
--- a/test/fs/promises_06.t.js
+++ b/test/fs/promises_06.t.js
@@ -3,7 +3,7 @@ includes: [compareArray.js, compatFs.js]
flags: [async]
---*/
-var dname = 'build/test/';
+var dname = `${test_dir}/`;
var fname = (d) => d + '/fs_promises_06_file';
var fname_utf8 = (d) => d + '/fs_promises_αβγ_06';
@@ -73,6 +73,9 @@ Promise.resolve()
.then(() => {
stages.push("renameSync");
})
+.catch((e) => {
+ console.log('test fs.renameSync failed', JSON.stringify(e));
+})
.then(testCallback)
.then(() => {
diff --git a/test/fs/promises_07.t.js b/test/fs/promises_07.t.js
--- a/test/fs/promises_07.t.js
+++ b/test/fs/promises_07.t.js
@@ -3,8 +3,8 @@ includes: [compareArray.js, compatFs.js]
flags: [async]
---*/
-var dname = 'build/test/fs_promises_07';
-var dname_utf8 = 'build/test/fs_promises_αβγ_07';
+var dname = `${test_dir}/fs_promises_07`;
+var dname_utf8 = `${test_dir}/fs_promises_αβγ_07`;
var fname = (d) => d + '/fs_promises_07_file';
var lname = (d) => d + '/fs_promises_07_link';
var cname = (d) => d + '/fs_promises_αβγ_07_dir';
diff --git a/test/fs/promises_08.t.js b/test/fs/promises_08.t.js
--- a/test/fs/promises_08.t.js
+++ b/test/fs/promises_08.t.js
@@ -3,7 +3,7 @@ includes: [compareArray.js, compatFs.js]
flags: [async]
---*/
-var dname = 'build/test/fs_promises_αβγ_08/';
+var dname = `${test_dir}/fs_promises_αβγ_08/`;
var path = 'one/two/three/αβγ';
var wipePath = (root, path, nofail) => {
diff --git a/test/fs/promises_09.t.js b/test/fs/promises_09.t.js
--- a/test/fs/promises_09.t.js
+++ b/test/fs/promises_09.t.js
@@ -3,7 +3,7 @@ includes: [compareArray.js, compatFs.js]
flags: [async]
---*/
-var root = 'build/test/';
+var root = test_dir;
var dname = 'fs_promises_αβγ_09/';
var lname = 'fs_promises_αβγ_09_lnk';
var path = 'one/two/three/αβγ';
diff --git a/test/harness/compatFs.js b/test/harness/compatFs.js
--- a/test/harness/compatFs.js
+++ b/test/harness/compatFs.js
@@ -9,3 +9,6 @@ if (typeof require == 'function') {
function has_fs() {
return fs;
}
+
+let test_dir = process.env && process.env['NJS_TEST_DIR'] || 'build';
+test_dir = `${test_dir}/test`;
diff --git a/test/help b/test/help
--- a/test/help
+++ b/test/help
@@ -17,6 +17,4 @@ default: "$NJS_TEST_LOG"
default: "$NJS_TEST_DIR"
--verbose=YES enables verbose output, \
default: "$NJS_TEST_VERBOSE"
- --leave=YES disables removing of "$NJS_TEST_DIR", \
-default: "$NJS_TEST_LEAVE"
END
diff --git a/test/test262 b/test/test262
--- a/test/test262
+++ b/test/test262
@@ -19,7 +19,7 @@ for njs_test in $NJS_TESTS; do
running $njs_test $njs_log
END
- if /bin/sh -c "($NJS_TEST_BINARY $NJS_TEST_DIR/$njs_test)" > $njs_log 2>&1; then
+ if /bin/sh -c "(NJS_TEST_DIR=$NJS_TEST_DIR $NJS_TEST_BINARY $NJS_TEST_DIR/$njs_test)" > $njs_log 2>&1; then
njs_success=yes
else
njs_success=no
# HG changeset patch
# User Dmitry Volyntsev <xeioex@nginx.com>
# Date 1640798409 0
# Wed Dec 29 17:20:09 2021 +0000
# Node ID c714088503bcf2f94767a9f10cbc48b22518f5b3
# Parent d11d962c40cdea4682298337d6bb65491e32bc88
Configure: added --build-dir option.
diff --git a/auto/help b/auto/help
--- a/auto/help
+++ b/auto/help
@@ -13,6 +13,7 @@
--ld-opt=OPTIONS set additional linker options, \
default: "$NJS_LD_OPT"
--ar=FILE set static linking program, default: "$AR"
+ --build-dir=DIR set build directory, default: "$NJS_BUILD_DIR"
--address-sanitizer=YES enables build with address sanitizer, \
default: "$NJS_ADDRESS_SANITIZER"
diff --git a/auto/init b/auto/init
--- a/auto/init
+++ b/auto/init
@@ -15,23 +15,7 @@ NJS_CFLAGS=${NJS_CFLAGS=}
NJS_BUILD_DIR=${NJS_BUILD_DIR:-build}
-NJS_AUTOTEST=$NJS_BUILD_DIR/autotest
-NJS_AUTOCONF_ERR=$NJS_BUILD_DIR/autoconf.err
-NJS_AUTO_CONFIG_H=$NJS_BUILD_DIR/njs_auto_config.h
-NJS_MAKEFILE=$NJS_BUILD_DIR/Makefile
-
NJS_LIB_MODULES=
-NJS_LIB_INCS="src $NJS_BUILD_DIR"
-
-test -d $NJS_BUILD_DIR || mkdir $NJS_BUILD_DIR
-
-> $NJS_AUTOCONF_ERR
-
-cat << END > $NJS_AUTO_CONFIG_H
-
-/* This file is auto-generated by configure */
-
-END
NJS_LIBRT=
diff --git a/auto/make b/auto/make
--- a/auto/make
+++ b/auto/make
@@ -242,7 +242,7 @@ lib_test: $NJS_BUILD_DIR/njs_auto_config
test262: njs
- test/test262
+ test/test262 --binary=$NJS_BUILD_DIR/njs
unit_test: $NJS_BUILD_DIR/njs_auto_config.h \\
$NJS_BUILD_DIR/njs_unit_test
diff --git a/auto/options b/auto/options
--- a/auto/options
+++ b/auto/options
@@ -31,6 +31,8 @@ do
--ld-opt=*) NJS_LD_OPT="$value" ;;
--ar=*) AR="$value" ;;
+ --build-dir=*) NJS_BUILD_DIR="$value" ;;
+
--address-sanitizer=*) NJS_ADDRESS_SANITIZER="$value" ;;
--debug=*) NJS_DEBUG="$value" ;;
--debug-memory=*) NJS_DEBUG_MEMORY="$value" ;;
diff --git a/configure b/configure
--- a/configure
+++ b/configure
@@ -14,8 +14,26 @@ set -e
set -u
. auto/init
+. auto/options
+
+NJS_AUTOTEST=$NJS_BUILD_DIR/autotest
+NJS_AUTOCONF_ERR=$NJS_BUILD_DIR/autoconf.err
+NJS_AUTO_CONFIG_H=$NJS_BUILD_DIR/njs_auto_config.h
+NJS_MAKEFILE=$NJS_BUILD_DIR/Makefile
+
+NJS_LIB_INCS="src $NJS_BUILD_DIR"
+
+test -d $NJS_BUILD_DIR || mkdir $NJS_BUILD_DIR
+
+> $NJS_AUTOCONF_ERR
+
+cat << END > $NJS_AUTO_CONFIG_H
+
+/* This file is auto-generated by configure */
+
+END
+
. auto/os
-. auto/options
. auto/cc
. auto/types
. auto/endianness