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 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
 
@@ -30,7 +30,9 @@ let globConfig = {
30
30
  ignore: ignore,
31
31
  };
32
32
 
33
- export async function test(filter = '', {watch = false, reporter = 'verbose'} = {}) {
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
- export declare function test(filter?: string, { watch, reporter }?: {
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
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ic-mops",
3
- "version": "0.21.1",
3
+ "version": "0.22.0",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "mops": "dist/cli.js"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "ic-mops",
3
- "version": "0.21.1",
3
+ "version": "0.22.0",
4
4
  "type": "module",
5
5
  "bin": {
6
6
  "mops": "dist/cli.js"