From fea700063d6c17d9c591521a8a331cf14de70aee Mon Sep 17 00:00:00 2001 From: "Hao, Yunfei" Date: Wed, 13 Jun 2018 05:44:43 +0800 Subject: [PATCH] [nodejs] Update test cases Impacted tests: new 0, update 8, delete 0 Unit test platform: Ubuntu 16.04 Unit test result summary: pass 8, fail 0, block 0 --- wrappers/nodejs/test/test-colorizer.js | 5 +- wrappers/nodejs/test/test-config.js | 74 +++++++++++++----------- wrappers/nodejs/test/test-context.js | 78 +++++++++++++++----------- 3 files changed, 87 insertions(+), 70 deletions(-) diff --git a/wrappers/nodejs/test/test-colorizer.js b/wrappers/nodejs/test/test-colorizer.js index 754e5aed54..05ff469d21 100644 --- a/wrappers/nodejs/test/test-colorizer.js +++ b/wrappers/nodejs/test/test-colorizer.js @@ -42,9 +42,8 @@ describe('Colorizer test', function() { colorizer= new rs2.Colorizer(); colorizer.destroy(); }); - setTimeout(() => { - assert.equal(colorizer, undefined); - }, 100); + assert.equal(colorizer.cxxColorizer, undefined); + assert.equal(colorizer.depthRGB, undefined); }); it('Testing method colorize', () => { diff --git a/wrappers/nodejs/test/test-config.js b/wrappers/nodejs/test/test-config.js index ff6487122d..33de2f2ef2 100644 --- a/wrappers/nodejs/test/test-config.js +++ b/wrappers/nodejs/test/test-config.js @@ -37,32 +37,34 @@ describe('Config test', function() { } }); - function createRrdFile() { - const ctx = new rs2.Context(); - let dev = ctx.queryDevices().devices[0]; - // record to file record.bag - let recorder = new rs2.RecorderDevice(fileName, dev); - let sensors = recorder.querySensors(); - let sensor = sensors[0]; - let profiles = sensor.getStreamProfiles(); - for (let i =0; i < profiles.length; i++) { - if (profiles[i].streamType === rs2.stream.STREAM_DEPTH && - profiles[i].fps === 30 && - profiles[i].width === 640 && - profiles[i].height === 480 && - profiles[i].format === rs2.format.FORMAT_Z16) { - sensor.open(profiles[i]); - } - } - // record 10 frames - let cnt = 0; - sensor.start((frame) => { - cnt++; - if (cnt === 10) { - // stop recording - recorder.reset(); - rs2.cleanup(); - } + function startRecording(file, cnt) { + return new Promise((resolve, reject) => { + setTimeout(() => { + let ctx = new rs2.Context(); + let dev = ctx.queryDevices().devices[0]; + let recorder = new rs2.RecorderDevice(file, dev); + let sensors = recorder.querySensors(); + let sensor = sensors[0]; + let profiles = sensor.getStreamProfiles(); + assert.equal(recorder.fileName, file); + for (let i = 0; i < profiles.length; i++) { + if (profiles[i].streamType === rs2.stream.STREAM_DEPTH && + profiles[i].fps === 30 && + profiles[i].width === 640 && + profiles[i].height === 480 && + profiles[i].format === rs2.format.FORMAT_Z16) { + sensor.open(profiles[i]); + } + } + let counter = 0; + sensor.start((frame) => { + counter++; + if (counter === cnt) { + recorder.reset(); + resolve(); + } + }); + }, 2000); }); } @@ -229,11 +231,15 @@ describe('Config test', function() { }); it('Testing method enableDeviceFromFile - with file', () => { - createRrdFile(); - assert.doesNotThrow(() => { - config.enableDeviceFromFile(fileName); + return new Promise((resolve, reject) => { + startRecording(fileName, 10).then(() => { + assert.doesNotThrow(() => { + config.enableDeviceFromFile(fileName); + }); + resolve(); + }); }); - }); + }).timeout(5000); it('Testing method enableDeviceFromFile - with invalid argument', () => { assert.throws(() => { @@ -284,16 +290,16 @@ describe('Config test', function() { assert.equal(fs.existsSync(fileName), true); assert.doesNotThrow(() => { let frameSet = pipeline.waitForFrames(); - assert(frameSet instanceof rs2.VideoFrame); + assert(frameSet instanceof rs2.FrameSet); }); - }); + }).timeout(10000); it('Testing method enableRecordToFile - then enableDeviceFromFile', () => { assert.doesNotThrow(() => { config.enableRecordToFile(fileName); pipeline.start(config); let frameSet = pipeline.waitForFrames(); - assert(frameSet instanceof rs2.VideoFrame); + assert(frameSet instanceof rs2.FrameSet); }); assert.equal(fs.existsSync(fileName), true); assert.throws(() => { @@ -309,7 +315,7 @@ describe('Config test', function() { }); assert.doesNotThrow(() => { let frameSet = pipeline.waitForFrames(); - assert(frameSet instanceof rs2.VideoFrame); + assert(frameSet instanceof rs2.FrameSet); }); assert.equal(fs.existsSync(fileName), true); }); diff --git a/wrappers/nodejs/test/test-context.js b/wrappers/nodejs/test/test-context.js index e9b701e859..7f6759530e 100644 --- a/wrappers/nodejs/test/test-context.js +++ b/wrappers/nodejs/test/test-context.js @@ -7,6 +7,7 @@ /* global describe, it, before, after */ const assert = require('assert'); const EventEmitter = require('events'); +const fs = require('fs'); let librealsense2; try { librealsense2 = require('node-librealsense'); @@ -25,32 +26,38 @@ describe('Context test', function() { librealsense2.cleanup(); }); - function createRrdFile() { - const ctx = new librealsense2.Context(); - let dev = ctx.queryDevices().devices[0]; - // record to file record.bag - let recorder = new librealsense2.RecorderDevice('record.bag', dev); - let sensors = recorder.querySensors(); - let sensor = sensors[0]; - let profiles = sensor.getStreamProfiles(); - for (let i =0; i < profiles.length; i++) { - if (profiles[i].streamType === librealsense2.stream.STREAM_DEPTH && - profiles[i].fps === 30 && - profiles[i].width === 640 && - profiles[i].height === 480 && - profiles[i].format === librealsense2.format.FORMAT_Z16) { - sensor.open(profiles[i]); - } - } - // record 10 frames - let cnt = 0; - sensor.start((frame) => { - cnt++; - if (cnt === 10) { - // stop recording - recorder.reset(); - librealsense2.cleanup(); - } + function startRecording(file, cnt, callback) { + return new Promise((resolve, reject) => { + setTimeout(() => { + let ctx = new librealsense2.Context(); + let dev = ctx.queryDevices().devices[0]; + let recorder = new librealsense2.RecorderDevice(file, dev); + let sensors = recorder.querySensors(); + let sensor = sensors[0]; + let profiles = sensor.getStreamProfiles(); + assert.equal(recorder.fileName, file); + for (let i = 0; i < profiles.length; i++) { + if (profiles[i].streamType === librealsense2.stream.STREAM_DEPTH && + profiles[i].fps === 30 && + profiles[i].width === 640 && + profiles[i].height === 480 && + profiles[i].format === librealsense2.format.FORMAT_Z16) { + sensor.open(profiles[i]); + } + } + let counter = 0; + sensor.start((frame) => { + if (callback) { + callback(recorder, counter); + } + counter++; + if (counter === cnt) { + recorder.reset(); + librealsense2.cleanup(); + resolve(); + } + }); + }, 2000); }); } @@ -152,14 +159,19 @@ describe('Context test', function() { }); it('testing method - loadDevice, return playbackDevice', () => { - createRrdFile(); - const context = new librealsense2.Context(); - let pbd; - assert.doesNotThrow(() => { - pbd = context.loadDevice('record.bag'); + return new Promise((resolve, reject) => { + startRecording('record.bag', 10, null).then(() => { + const context = new librealsense2.Context(); + let pbd; + assert.doesNotThrow(() => { + pbd = context.loadDevice('record.bag'); + }); + assert(pbd instanceof librealsense2.Device); + fs.unlinkSync('record.bag'); + resolve(); + }); }); - assert(pbd instanceof librealsense2.Device); - }); + }).timeout(5000); it('testing method - getSensorParent', () => { const context = new librealsense2.Context();