ic-mops 0.21.1 → 0.22.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cli.ts +5 -0
- package/commands/test/test.ts +6 -4
- package/dist/cli.js +5 -0
- package/dist/commands/test/test.d.ts +5 -2
- package/dist/commands/test/test.js +4 -4
- package/dist/package.json +1 -1
- package/package.json +1 -1
package/cli.ts
CHANGED
|
@@ -188,7 +188,12 @@ program
|
|
|
188
188
|
.description('Run tests')
|
|
189
189
|
.option('-r, --reporter <reporter>', 'Choose reporter: verbose, compact, files')
|
|
190
190
|
.option('-w, --watch', 'Enable watch mode')
|
|
191
|
+
.option('--mode <mode>', 'Test mode: \'interpreter\' or \'wasi\' (default \'interpreter\'')
|
|
191
192
|
.action(async (filter, options) => {
|
|
193
|
+
if (options.mode && !['interpreter', 'wasi'].includes(options.mode)) {
|
|
194
|
+
console.log(`Unknown --mode value '${options.mode}'. Allowed: interpreter, wasi`);
|
|
195
|
+
process.exit(1);
|
|
196
|
+
}
|
|
192
197
|
await test(filter, options);
|
|
193
198
|
});
|
|
194
199
|
|
package/commands/test/test.ts
CHANGED
|
@@ -30,7 +30,9 @@ let globConfig = {
|
|
|
30
30
|
ignore: ignore,
|
|
31
31
|
};
|
|
32
32
|
|
|
33
|
-
|
|
33
|
+
type TestMode = 'interpreter' | 'wasi';
|
|
34
|
+
|
|
35
|
+
export async function test(filter = '', {watch = false, reporter = 'verbose', mode = 'interpreter' as TestMode} = {}) {
|
|
34
36
|
let rootDir = getRootDir();
|
|
35
37
|
|
|
36
38
|
if (watch) {
|
|
@@ -59,7 +61,7 @@ export async function test(filter = '', {watch = false, reporter = 'verbose'} =
|
|
|
59
61
|
run();
|
|
60
62
|
}
|
|
61
63
|
else {
|
|
62
|
-
let passed = await runAll(filter, reporter);
|
|
64
|
+
let passed = await runAll(filter, reporter, mode);
|
|
63
65
|
if (!passed) {
|
|
64
66
|
process.exit(1);
|
|
65
67
|
}
|
|
@@ -68,7 +70,7 @@ export async function test(filter = '', {watch = false, reporter = 'verbose'} =
|
|
|
68
70
|
|
|
69
71
|
let mocPath = process.env.DFX_MOC_PATH;
|
|
70
72
|
|
|
71
|
-
export async function runAll(filter = '', reporterName = 'verbose') {
|
|
73
|
+
export async function runAll(filter = '', reporterName = 'verbose', mode: TestMode = 'interpreter') {
|
|
72
74
|
let reporter: Reporter;
|
|
73
75
|
if (reporterName == 'compact') {
|
|
74
76
|
reporter = new CompactReporter;
|
|
@@ -116,7 +118,7 @@ export async function runAll(filter = '', reporterName = 'verbose') {
|
|
|
116
118
|
|
|
117
119
|
await parallel(os.cpus().length, files, async (file: string) => {
|
|
118
120
|
let mmf = new MMF1('store');
|
|
119
|
-
let wasiMode = fs.readFileSync(file, 'utf8').startsWith('// @testmode wasi');
|
|
121
|
+
let wasiMode = mode === 'wasi' || fs.readFileSync(file, 'utf8').startsWith('// @testmode wasi');
|
|
120
122
|
|
|
121
123
|
let promise = new Promise<void>((resolve) => {
|
|
122
124
|
if (!mocPath) {
|
package/dist/cli.js
CHANGED
|
@@ -169,7 +169,12 @@ program
|
|
|
169
169
|
.description('Run tests')
|
|
170
170
|
.option('-r, --reporter <reporter>', 'Choose reporter: verbose, compact, files')
|
|
171
171
|
.option('-w, --watch', 'Enable watch mode')
|
|
172
|
+
.option('--mode <mode>', 'Test mode: \'interpreter\' or \'wasi\' (default \'interpreter\'')
|
|
172
173
|
.action(async (filter, options) => {
|
|
174
|
+
if (options.mode && !['interpreter', 'wasi'].includes(options.mode)) {
|
|
175
|
+
console.log(`Unknown --mode value '${options.mode}'. Allowed: interpreter, wasi`);
|
|
176
|
+
process.exit(1);
|
|
177
|
+
}
|
|
173
178
|
await test(filter, options);
|
|
174
179
|
});
|
|
175
180
|
// template
|
|
@@ -1,5 +1,8 @@
|
|
|
1
|
-
|
|
1
|
+
type TestMode = 'interpreter' | 'wasi';
|
|
2
|
+
export declare function test(filter?: string, { watch, reporter, mode }?: {
|
|
2
3
|
watch?: boolean | undefined;
|
|
3
4
|
reporter?: string | undefined;
|
|
5
|
+
mode?: TestMode | undefined;
|
|
4
6
|
}): Promise<void>;
|
|
5
|
-
export declare function runAll(filter?: string, reporterName?: string): Promise<boolean | undefined>;
|
|
7
|
+
export declare function runAll(filter?: string, reporterName?: string, mode?: TestMode): Promise<boolean | undefined>;
|
|
8
|
+
export {};
|
|
@@ -24,7 +24,7 @@ let globConfig = {
|
|
|
24
24
|
nocase: true,
|
|
25
25
|
ignore: ignore,
|
|
26
26
|
};
|
|
27
|
-
export async function test(filter = '', { watch = false, reporter = 'verbose' } = {}) {
|
|
27
|
+
export async function test(filter = '', { watch = false, reporter = 'verbose', mode = 'interpreter' } = {}) {
|
|
28
28
|
let rootDir = getRootDir();
|
|
29
29
|
if (watch) {
|
|
30
30
|
// todo: run only changed for *.test.mo?
|
|
@@ -50,14 +50,14 @@ export async function test(filter = '', { watch = false, reporter = 'verbose' }
|
|
|
50
50
|
run();
|
|
51
51
|
}
|
|
52
52
|
else {
|
|
53
|
-
let passed = await runAll(filter, reporter);
|
|
53
|
+
let passed = await runAll(filter, reporter, mode);
|
|
54
54
|
if (!passed) {
|
|
55
55
|
process.exit(1);
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
59
|
let mocPath = process.env.DFX_MOC_PATH;
|
|
60
|
-
export async function runAll(filter = '', reporterName = 'verbose') {
|
|
60
|
+
export async function runAll(filter = '', reporterName = 'verbose', mode = 'interpreter') {
|
|
61
61
|
let reporter;
|
|
62
62
|
if (reporterName == 'compact') {
|
|
63
63
|
reporter = new CompactReporter;
|
|
@@ -99,7 +99,7 @@ export async function runAll(filter = '', reporterName = 'verbose') {
|
|
|
99
99
|
fs.mkdirSync(wasmDir, { recursive: true });
|
|
100
100
|
await parallel(os.cpus().length, files, async (file) => {
|
|
101
101
|
let mmf = new MMF1('store');
|
|
102
|
-
let wasiMode = fs.readFileSync(file, 'utf8').startsWith('// @testmode wasi');
|
|
102
|
+
let wasiMode = mode === 'wasi' || fs.readFileSync(file, 'utf8').startsWith('// @testmode wasi');
|
|
103
103
|
let promise = new Promise((resolve) => {
|
|
104
104
|
if (!mocPath) {
|
|
105
105
|
mocPath = 'moc';
|
package/dist/package.json
CHANGED