Skip to content

Commit

Permalink
test: fix test-esm-addons
Browse files Browse the repository at this point in the history
Move test-esm-addons to test/addons/hello-world-esm.

Test should now work properly on CI machines where `addons` are not
always built at the expected relative path from the es-modules tests.

Test should now work in Debug builds.

PR-URL: #16174
Fixes: #16155
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Daniel Bevenius <daniel.bevenius@gmail.com>
Reviewed-By: Refael Ackermann <refack@gmail.com>
  • Loading branch information
Trott authored and targos committed Oct 18, 2017
1 parent d09e489 commit 68bfde9
Show file tree
Hide file tree
Showing 4 changed files with 43 additions and 2 deletions.
13 changes: 13 additions & 0 deletions test/addons/hello-world-esm/binding.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#include <node.h>
#include <v8.h>

void Method(const v8::FunctionCallbackInfo<v8::Value>& args) {
v8::Isolate* isolate = args.GetIsolate();
args.GetReturnValue().Set(v8::String::NewFromUtf8(isolate, "world"));
}

void init(v8::Local<v8::Object> exports) {
NODE_SET_METHOD(exports, "hello", Method);
}

NODE_MODULE(NODE_GYP_MODULE_NAME, init)
9 changes: 9 additions & 0 deletions test/addons/hello-world-esm/binding.gyp
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
{
'targets': [
{
'target_name': 'binding',
'defines': [ 'V8_DEPRECATION_WARNINGS=1' ],
'sources': [ 'binding.cc' ]
}
]
}
20 changes: 20 additions & 0 deletions test/addons/hello-world-esm/test.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
'use strict';
const common = require('../../common');

const assert = require('assert');
const { spawnSync } = require('child_process');
const { copyFileSync } = require('fs');
const { join } = require('path');

const buildDir = join(__dirname, 'build');

copyFileSync(join(buildDir, common.buildType, 'binding.node'),
join(buildDir, 'binding.node'));

const result = spawnSync(process.execPath,
['--experimental-modules', `${__dirname}/test.mjs`]);

assert.ifError(result.error);
// TODO: Uncomment this once ESM is no longer experimental.
// assert.strictEqual(result.stderr.toString().trim(), '');
assert.strictEqual(result.stdout.toString().trim(), 'binding.hello() = world');
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
// Flags: --experimental-modules
/* eslint-disable required-modules */

import assert from 'assert';
import binding from '../addons/hello-world/build/Release/binding.node';
import binding from './build/binding.node';
assert.strictEqual(binding.hello(), 'world');
console.log('binding.hello() =', binding.hello());

0 comments on commit 68bfde9

Please sign in to comment.