]> git.kaiwu.me - njs.git/commitdiff
Tests: allowing to define own test function per test suite.
authorDmitry Volyntsev <xeioex@nginx.com>
Mon, 1 Nov 2021 15:53:30 +0000 (15:53 +0000)
committerDmitry Volyntsev <xeioex@nginx.com>
Mon, 1 Nov 2021 15:53:30 +0000 (15:53 +0000)
test/webcrypto/aes.js
test/webcrypto/aes_decoding.js
test/webcrypto/derive.js
test/webcrypto/digest.js
test/webcrypto/rsa.js
test/webcrypto/rsa_decoding.js
test/webcrypto/sign.js
test/webcrypto/verify.js

index 1b8219f54b4ad061c6b08bcecb030320033550f0..85577fc9f80642d9221e726ccc63d0eec34e26c2 100644 (file)
@@ -2,7 +2,7 @@ if (typeof crypto == 'undefined') {
     crypto = require('crypto').webcrypto;
 }
 
-async function run(tlist, T, prepare_args) {
+async function run(tlist) {
     function validate(t, r, i) {
         if (r.status == "fulfilled" && !t[i].exception) {
             return r.value === "SUCCESS";
@@ -22,7 +22,7 @@ async function run(tlist, T, prepare_args) {
 
     for (let k = 0; k < tlist.length; k++) {
         let ts = tlist[k];
-        let results = await Promise.allSettled(ts.tests.map(t => T(prepare_args(t, ts.opts))));
+        let results = await Promise.allSettled(ts.tests.map(t => ts.T(ts.prepare_args(t, ts.opts))));
         let r = results.map((r, i) => validate(ts.tests, r, i));
 
         console.log(`${ts.name} ${r.every(v=>v == true) ? "SUCCESS" : "FAILED"}`);
@@ -77,6 +77,8 @@ async function test(params) {
 
 let aes_tsuite = {
     name: "AES encoding/decoding",
+    T: test,
+    prepare_args: p,
     opts: {
         iv: "44556677445566774455667744556677",
         key: "00112233001122330011223300112233",
@@ -120,4 +122,4 @@ let aes_tsuite = {
         { name: "AES-CBC", data: "aabbccdd".repeat(5), iv: "ffffffffffffffffffffffffffffffff" },
 ]};
 
-run([aes_tsuite], test, p);
+run([aes_tsuite]);
index 3b4dfe7858ac10ca7d0b3df3ab9b6e5be8c14fa7..d518856ad583b18e1a1def8585c39252879eb29d 100644 (file)
@@ -4,7 +4,7 @@ if (typeof crypto == 'undefined') {
     crypto = require('crypto').webcrypto;
 }
 
-async function run(tlist, T, prepare_args) {
+async function run(tlist) {
     function validate(t, r, i) {
         if (r.status == "fulfilled" && !t[i].exception) {
             return r.value === "SUCCESS";
@@ -24,7 +24,7 @@ async function run(tlist, T, prepare_args) {
 
     for (let k = 0; k < tlist.length; k++) {
         let ts = tlist[k];
-        let results = await Promise.allSettled(ts.tests.map(t => T(prepare_args(t, ts.opts))));
+        let results = await Promise.allSettled(ts.tests.map(t => ts.T(ts.prepare_args(t, ts.opts))));
         let r = results.map((r, i) => validate(ts.tests, r, i));
 
         console.log(`${ts.name} ${r.every(v=>v == true) ? "SUCCESS" : "FAILED"}`);
@@ -79,6 +79,8 @@ async function test(params) {
 
 let aes_tsuite = {
     name: "AES decoding",
+    T: test,
+    prepare_args: p,
     opts: {
         key: "00112233001122330011223300112233",
         iv: "44556677445566774455667744556677",
@@ -113,4 +115,4 @@ let aes_tsuite = {
           expected: "AES-CBC-256-SECRET-TEXT" },
 ]};
 
-run([aes_tsuite], test, p);
+run([aes_tsuite]);
index e2f6917db6ff48bfe2e3db62830a06119c8f2505..8c87c013b3c17ef3ac997bf90f21ce6db29933c4 100644 (file)
@@ -2,7 +2,7 @@ if (typeof crypto == 'undefined') {
     crypto = require('crypto').webcrypto;
 }
 
-async function run(tlist, T, prepare_args) {
+async function run(tlist) {
     function validate(t, r, i) {
         if (r.status == "fulfilled" && !t[i].exception) {
             return r.value === "SUCCESS";
@@ -26,7 +26,7 @@ async function run(tlist, T, prepare_args) {
 
     for (let k = 0; k < tlist.length; k++) {
         let ts = tlist[k];
-        let results = await Promise.allSettled(ts.tests.map(t => T(prepare_args(t, ts.opts))));
+        let results = await Promise.allSettled(ts.tests.map(t => ts.T(ts.prepare_args(t, ts.opts))));
         let r = results.map((r, i) => validate(ts.tests, r, i));
 
         console.log(`${ts.name} ${r.every(v=>v == true) ? "SUCCESS" : "FAILED"}`);
@@ -96,6 +96,8 @@ async function test(params) {
 
 let derive_tsuite = {
     name: "derive",
+    T: test,
+    prepare_args: p,
     opts: {
         text: "secReT",
         pass: "passW0rd",
@@ -146,4 +148,4 @@ let derive_tsuite = {
           expected: "e089c7491711306c69e077aa19fae6bfd2d4a6d240b0d37317d50472d7291a3e" },
 ]};
 
-run([derive_tsuite], test, p);
+run([derive_tsuite]);
index 4eed191be05a2bd4555e40db7d572bb7ab895ded..77d6ad143ffa2a78ccef3fc26715ad92d27e27d0 100644 (file)
@@ -2,7 +2,7 @@ if (typeof crypto == 'undefined') {
     crypto = require('crypto').webcrypto;
 }
 
-async function run(tlist, T, prepare_args) {
+async function run(tlist) {
     function validate(t, r, i) {
         if (r.status == "fulfilled" && !t[i].exception) {
             return r.value === "SUCCESS";
@@ -22,7 +22,7 @@ async function run(tlist, T, prepare_args) {
 
     for (let k = 0; k < tlist.length; k++) {
         let ts = tlist[k];
-        let results = await Promise.allSettled(ts.tests.map(t => T(prepare_args(t, ts.opts))));
+        let results = await Promise.allSettled(ts.tests.map(t => ts.T(ts.prepare_args(t, ts.opts))));
         let r = results.map((r, i) => validate(ts.tests, r, i));
 
         console.log(`${ts.name} ${r.every(v=>v == true) ? "SUCCESS" : "FAILED"}`);
@@ -54,6 +54,8 @@ async function test(params) {
 
 let digest_tsuite = {
     name: "SHA digest",
+    T: test,
+    prepare_args: p,
     opts: { },
 
     tests: [
@@ -85,4 +87,4 @@ let digest_tsuite = {
           expected: "cdea58919606ea9ae078f7595b192b84446f2189" },
 ]};
 
-run([digest_tsuite], test, p);
+run([digest_tsuite]);
index 36744d84ba54c4905ac3c1efe5fc00e508372849..42d68d022ff8113ffed62898415b642ab83d93b9 100644 (file)
@@ -4,7 +4,7 @@ if (typeof crypto == 'undefined') {
     crypto = require('crypto').webcrypto;
 }
 
-async function run(tlist, T, prepare_args) {
+async function run(tlist) {
     function validate(t, r, i) {
         if (r.status == "fulfilled" && !t[i].exception) {
             return r.value === "SUCCESS";
@@ -24,7 +24,7 @@ async function run(tlist, T, prepare_args) {
 
     for (let k = 0; k < tlist.length; k++) {
         let ts = tlist[k];
-        let results = await Promise.allSettled(ts.tests.map(t => T(prepare_args(t, ts.opts))));
+        let results = await Promise.allSettled(ts.tests.map(t => ts.T(ts.prepare_args(t, ts.opts))));
         let r = results.map((r, i) => validate(ts.tests, r, i));
 
         console.log(`${ts.name} ${r.every(v=>v == true) ? "SUCCESS" : "FAILED"}`);
@@ -79,6 +79,8 @@ async function test(params) {
 
 let rsa_tsuite = {
     name: "RSA-OAEP encoding/decoding",
+    T: test,
+    prepare_args: p,
     opts: {
         spki: "rsa.spki",
         spki_hash: "SHA-256",
@@ -103,4 +105,4 @@ let rsa_tsuite = {
         { data: "aabbcc", spki: "rsa2.spki", exception: "Error: EVP_PKEY_decrypt() failed" },
 ]};
 
-run([rsa_tsuite], test, p);
+run([rsa_tsuite]);
index c5e0f654fd00f199967edf6d485f71ffa6cf32b6..4ebdd0fc998cbe55f7fa01ae123d2eb2f80c7652 100644 (file)
@@ -4,7 +4,7 @@ if (typeof crypto == 'undefined') {
     crypto = require('crypto').webcrypto;
 }
 
-async function run(tlist, T, prepare_args) {
+async function run(tlist) {
     function validate(t, r, i) {
         if (r.status == "fulfilled" && !t[i].exception) {
             return r.value === "SUCCESS";
@@ -24,7 +24,7 @@ async function run(tlist, T, prepare_args) {
 
     for (let k = 0; k < tlist.length; k++) {
         let ts = tlist[k];
-        let results = await Promise.allSettled(ts.tests.map(t => T(prepare_args(t, ts.opts))));
+        let results = await Promise.allSettled(ts.tests.map(t => ts.T(ts.prepare_args(t, ts.opts))));
         let r = results.map((r, i) => validate(ts.tests, r, i));
 
         console.log(`${ts.name} ${r.every(v=>v == true) ? "SUCCESS" : "FAILED"}`);
@@ -70,6 +70,8 @@ async function test(params) {
 
 let rsa_tsuite = {
     name: "RSA-OAEP decoding",
+    T: test,
+    prepare_args: (v) => v,
     opts: { },
 
     tests: [
@@ -78,4 +80,4 @@ let rsa_tsuite = {
         { pem: "rsa.pkcs8.broken", src: "text.base64.rsa-oaep.enc", exception: "Error: d2i_PKCS8_PRIV_KEY_INFO_bio() failed" },
 ]};
 
-run([rsa_tsuite], test, (v) => v);
+run([rsa_tsuite]);
index 0473d2ac3e4540cd3f76b55890d0570a6bf6ac1e..60f5fa77fe536d1e51f0cbf6c9a55c2131570204 100644 (file)
@@ -3,7 +3,7 @@ if (typeof crypto == 'undefined') {
     crypto = require('crypto').webcrypto;
 }
 
-async function run(tlist, T, prepare_args) {
+async function run(tlist) {
     function validate(t, r, i) {
         if (r.status == "fulfilled" && !t[i].exception) {
             return r.value === "SUCCESS";
@@ -23,7 +23,7 @@ async function run(tlist, T, prepare_args) {
 
     for (let k = 0; k < tlist.length; k++) {
         let ts = tlist[k];
-        let results = await Promise.allSettled(ts.tests.map(t => T(prepare_args(t, ts.opts))));
+        let results = await Promise.allSettled(ts.tests.map(t => ts.T(ts.prepare_args(t, ts.opts))));
         let r = results.map((r, i) => validate(ts.tests, r, i));
 
         console.log(`${ts.name} ${r.every(v=>v == true) ? "SUCCESS" : "FAILED"}`);
@@ -160,6 +160,8 @@ async function test(params) {
 
 let hmac_tsuite = {
     name: "HMAC sign",
+    T: test,
+    prepare_args: p,
     opts: {
         text: "TExt-T0-SiGN",
         sign_key: { key: "secretKEY", fmt: "raw" },
@@ -193,6 +195,8 @@ let hmac_tsuite = {
 
 let rsassa_pkcs1_v1_5_tsuite = {
     name: "RSASSA-PKCS1-v1_5 sign",
+    T: test,
+    prepare_args: p,
     opts: {
         text: "TExt-T0-SiGN",
         sign_key: { key: "rsa.pkcs8", fmt: "pkcs8" },
@@ -221,6 +225,8 @@ let rsassa_pkcs1_v1_5_tsuite = {
 
 let rsa_pss_tsuite = {
     name: "RSA-PSS sign",
+    T: test,
+    prepare_args: p,
     opts: {
         text: "TExt-T0-SiGN",
         sign_key: { key: "rsa.pkcs8", fmt: "pkcs8" },
@@ -250,6 +256,8 @@ let rsa_pss_tsuite = {
 
 let ecdsa_tsuite = {
     name: "ECDSA sign",
+    T: test,
+    prepare_args: p,
     opts: {
         text: "TExt-T0-SiGN",
         sign_key: { key: "ec.pkcs8", fmt: "pkcs8" },
@@ -279,4 +287,4 @@ run([
     rsassa_pkcs1_v1_5_tsuite,
     rsa_pss_tsuite,
     ecdsa_tsuite
-], test, p);
+]);
index a969e3ba8bf60006744bab741c86b4f09bbb9cf2..6ae24d02c3b9288bff78e380f71fa80638e23ec4 100644 (file)
@@ -4,7 +4,7 @@ if (typeof crypto == 'undefined') {
     crypto = require('crypto').webcrypto;
 }
 
-async function run(tlist, T, prepare_args) {
+async function run(tlist) {
     function validate(t, r, i) {
         if (r.status == "fulfilled" && !t[i].exception) {
             return r.value === "SUCCESS";
@@ -24,7 +24,7 @@ async function run(tlist, T, prepare_args) {
 
     for (let k = 0; k < tlist.length; k++) {
         let ts = tlist[k];
-        let results = await Promise.allSettled(ts.tests.map(t => T(prepare_args(t, ts.opts))));
+        let results = await Promise.allSettled(ts.tests.map(t => ts.T(ts.prepare_args(t, ts.opts))));
         let r = results.map((r, i) => validate(ts.tests, r, i));
 
         console.log(`${ts.name} ${r.every(v=>v == true) ? "SUCCESS" : "FAILED"}`);
@@ -108,6 +108,8 @@ async function test(params) {
 
 let hmac_tsuite = {
     name: "HMAC verify",
+    T: test,
+    prepare_args: p,
     opts: {
         text: "SigneD-TExt",
         key: { fmt: "raw", file: "aabbcc" },
@@ -130,6 +132,8 @@ let hmac_tsuite = {
 
 let rsassa_pkcs1_v1_5_tsuite = {
     name: "RSASSA-PKCS1-v1_5 verify",
+    T: test,
+    prepare_args: p,
     opts: {
         text: "SigneD-TExt",
         key: { fmt: "spki", file: "rsa.spki" },
@@ -152,6 +156,8 @@ let rsassa_pkcs1_v1_5_tsuite = {
 
 let rsa_pss_tsuite = {
     name: "RSA-PSS verify",
+    T: test,
+    prepare_args: p,
     opts: {
         text: "SigneD-TExt",
         key: { fmt: "spki", file: "rsa.spki" },
@@ -179,6 +185,8 @@ let rsa_pss_tsuite = {
 
 let ecdsa_tsuite = {
     name: "ECDSA verify",
+    T: test,
+    prepare_args: p,
     opts: {
         text: "SigneD-TExt",
         key: { fmt: "spki", file: "ec.spki" },
@@ -204,4 +212,4 @@ run([
     rsassa_pkcs1_v1_5_tsuite,
     rsa_pss_tsuite,
     ecdsa_tsuite,
-], test, p);
+]);