test: add test to verify ErrnoException path

This commit adds a test to verify that the path argument to
ErrnoException can contain UTF-8 characters.

PR-URL: https://github.com/nodejs/node/pull/13958
Reviewed-By: Anna Henningsen <anna@addaleax.net>
Reviewed-By: Tobias Nießen <tniessen@tnie.de>
Reviewed-By: Gibson Fahnestock <gibfahn@gmail.com>
This commit is contained in:
Daniel Bevenius 2017-06-30 09:25:00 +02:00
parent e6eb5c00da
commit 95c8df18f1
3 changed files with 42 additions and 0 deletions

View File

@ -0,0 +1,18 @@
#include <node.h>
#include <v8.h>
void Method(const v8::FunctionCallbackInfo<v8::Value>& args) {
v8::Isolate* isolate = args.GetIsolate();
v8::HandleScope scope(isolate);
args.GetReturnValue().Set(node::ErrnoException(isolate,
10,
"syscall",
"some error msg",
"päth"));
}
void init(v8::Local<v8::Object> exports) {
NODE_SET_METHOD(exports, "errno", Method);
}
NODE_MODULE(binding, init)

View File

@ -0,0 +1,9 @@
{
'targets': [
{
'target_name': 'binding',
'defines': [ 'V8_DEPRECATION_WARNINGS=1' ],
'sources': [ 'binding.cc' ]
}
]
}

View File

@ -0,0 +1,15 @@
'use strict';
const common = require('../../common');
// Verify that the path argument to node::ErrnoException() can contain UTF-8
// characters.
const assert = require('assert');
const binding = require(`./build/${common.buildType}/binding`);
const err = binding.errno();
assert.strictEqual(err.syscall, 'syscall');
assert.strictEqual(err.errno, 10);
assert.strictEqual(err.path, 'päth');
assert.ok(/^Error:\s\w+, some error msg 'päth'$/.test(err.toString()));