diff --git a/tfjs-node/src/image_test.ts b/tfjs-node/src/image_test.ts index f0131dfb0a7..b3d2be05690 100644 --- a/tfjs-node/src/image_test.ts +++ b/tfjs-node/src/image_test.ts @@ -1,6 +1,6 @@ /** * @license - * Copyright 2019 Google Inc. All Rights Reserved. + * Copyright 2020 Google Inc. All Rights Reserved. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -14,10 +14,12 @@ * limitations under the License. * ============================================================================= */ - -import {memory, setBackend, test_util} from '@tensorflow/tfjs'; +import {memory, registerBackend, setBackend, test_util} from '@tensorflow/tfjs'; +// tslint:disable-next-line: no-imports-from-dist +import {TestKernelBackend} from '@tensorflow/tfjs-core/dist/jasmine_util'; import * as fs from 'fs'; import {promisify} from 'util'; + import {getImageType, ImageType} from './image'; import * as tf from './index'; @@ -221,14 +223,18 @@ describe('decode images', () => { it('throw error if backend is not tensorflow', async done => { try { - setBackend('cpu'); + const testBackend = new TestKernelBackend(); + registerBackend('fake', () => testBackend); + setBackend('fake'); + const uint8array = await getUint8ArrayFromImage( 'test_objects/images/image_png_test.png'); tf.node.decodeImage(uint8array); done.fail(); } catch (err) { expect(err.message) - .toBe('Expect the current backend to be "tensorflow", but got "cpu"'); + .toBe( + 'Expect the current backend to be "tensorflow", but got "fake"'); setBackend('tensorflow'); done(); } diff --git a/tfjs-node/src/nodejs_kernel_backend_test.ts b/tfjs-node/src/nodejs_kernel_backend_test.ts index 44653247b87..7a2aad4dde4 100644 --- a/tfjs-node/src/nodejs_kernel_backend_test.ts +++ b/tfjs-node/src/nodejs_kernel_backend_test.ts @@ -16,6 +16,9 @@ */ import * as tf from '@tensorflow/tfjs'; +// tslint:disable-next-line: no-imports-from-dist +import {TestKernelBackend} from '@tensorflow/tfjs-core/dist/jasmine_util'; + import {createTensorsTypeOpAttr, createTypeOpAttr, ensureTensorflowBackend, getTFDType, nodeBackend, NodeJSKernelBackend} from './nodejs_kernel_backend'; describe('delayed upload', () => { @@ -74,12 +77,16 @@ describe('Exposes Backend for internal Op execution.', () => { it('throw error if backend is not tensorflow', async done => { try { - tf.setBackend('cpu'); + const testBackend = new TestKernelBackend(); + tf.registerBackend('fake', () => testBackend); + tf.setBackend('fake'); + ensureTensorflowBackend(); done.fail(); } catch (err) { expect(err.message) - .toBe('Expect the current backend to be "tensorflow", but got "cpu"'); + .toBe( + 'Expect the current backend to be "tensorflow", but got "fake"'); tf.setBackend('tensorflow'); done(); } diff --git a/tfjs-node/src/run_tests.ts b/tfjs-node/src/run_tests.ts index 847441c5431..dd5ff25830b 100644 --- a/tfjs-node/src/run_tests.ts +++ b/tfjs-node/src/run_tests.ts @@ -35,8 +35,12 @@ process.on('unhandledRejection', e => { throw e; }); -jasmine_util.setTestEnvs( - [{name: 'test-tensorflow', backendName: 'tensorflow', flags: {}}]); +jasmine_util.setTestEnvs([{ + name: 'test-tensorflow', + backendName: 'tensorflow', + flags: {}, + isDataSync: true +}]); const IGNORE_LIST: string[] = [ // Always ignore version tests: @@ -90,11 +94,11 @@ if (process.platform === 'win32') { 'maxPool test-tensorflow {} [x=[3,3,1] f=[2,2] s=1 ignores NaNs'); } -const coreTests = 'node_modules/@tensorflow/tfjs-core/dist/**/*_test.js'; -const nodeTests = 'src/**/*_test.ts'; - const runner = new jasmineCtor(); -runner.loadConfig({spec_files: [coreTests, nodeTests], random: false}); +runner.loadConfig({spec_files: ['src/**/*_test.ts'], random: false}); +// Also import tests from core. +// tslint:disable-next-line: no-imports-from-dist +import '@tensorflow/tfjs-core/dist/tests'; if (process.env.JASMINE_SEED) { runner.seed(process.env.JASMINE_SEED);