UNPKG

5.38 kBSource Map (JSON)View Raw
1{"version":3,"file":"test_async_backends.js","sourceRoot":"","sources":["../src/test_async_backends.ts"],"names":[],"mappings":";AACA;;;;;;;;;;;;;;;GAeG;AACH;;;;GAIG;AAEH,mEAAmE;AACnE,qCAAqC;AACrC,+CAA+C;AAC/C,OAAO,CAAC,8BAA8B,CAAC,CAAC;AACxC,OAAO,SAAS,CAAC;AACjB,OAAO,+CAA+C,CAAC;AACvD,OAAO,0BAA0B,CAAC;AAClC,OAAO,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAC,eAAe,EAAE,MAAM,EAAC,MAAM,WAAW,CAAC;AAClD,OAAO,EAAC,aAAa,EAAC,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAC,oBAAoB,EAAE,cAAc,EAAC,MAAM,mBAAmB,CAAC;AAEvE,8CAA8C;AAC9C,MAAM,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;AAEnC,OAAO,CAAC,EAAE,CAAC,oBAAoB,EAAE,CAAC,CAAC,EAAE;IACnC,MAAM,CAAC,CAAC;AACV,CAAC,CAAC,CAAC;AAEH,MAAM,eAAgB,SAAQ,aAAa;CAAG;AAC9C,MAAM,YAAY,GAAG,IAAI,eAAe,EAAE,CAAC;AAE3C,uEAAuE;AACvE,YAAY;AACZ,MAAM,OAAO,GAAkB,MAAM,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;AAC3D,MAAM,YAAY,GAAG,IAAI,KAAK,CAAC,YAAY,EAAE;IAC3C,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ;QACxB,IAAI,IAAI,KAAK,UAAU,EAAE;YACvB,MAAM,IAAI,KAAK,CACX,kEAAkE;gBAClE,+DAA+D;gBAC/D,gEAAgE;gBAChE,4CAA4C,CAAC,CAAC;SACnD;QACD,aAAa;QACb,MAAM,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,OAAO,UAAU,KAAK,UAAU,EAAE;YACpC,kCAAkC;YAClC,OAAO,CAAC,GAAG,IAAW,EAAE,EAAE;gBACxB,OAAO,UAAU,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;YACzC,CAAC,CAAC;SACH;aAAM;YACL,OAAO,UAAU,CAAC;SACnB;IACH,CAAC;CACF,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;AAE1C,2EAA2E;AAC3E,6DAA6D;AAC7D,eAAe,CAAC,gBAAgB,EAAE,KAAK,IAAI,EAAE,CAAC,YAAY,CAAC,CAAC;AAE5D,qEAAqE;AACrE,mDAAmD;AACnD,MAAM,OAAO,GAAG,oBAAoB,CAAC,KAAK,CAAC,CAAC;AAC5C,OAAO,CAAC,OAAO,CAAC,CAAC,EAAC,UAAU,EAAE,UAAU,EAAE,SAAS,EAAC,EAAE,EAAE;IACtD,cAAc,CACV,EAAC,UAAU,EAAE,WAAW,EAAE,gBAAgB,EAAE,UAAU,EAAE,SAAS,EAAC,CAAC,CAAC;AAC1E,CAAC,CAAC,CAAC;AAEH,WAAW,CAAC,CAAC;QACX,IAAI,EAAE,gBAAgB;QACtB,WAAW,EAAE,gBAAgB;QAC7B,UAAU,EAAE,KAAK;KAClB,CAAC,CAAC,CAAC;AAEJ,MAAM,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;AAE7B,MAAM,CAAC,UAAU,CAAC,EAAC,UAAU,EAAE,CAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,KAAK,EAAC,CAAC,CAAC;AACvE,MAAM,CAAC,OAAO,EAAE,CAAC","sourcesContent":["#!/usr/bin/env node\n/**\n * @license\n * Copyright 2019 Google LLC. All Rights Reserved.\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n * =============================================================================\n */\n/**\n * This file tests that we don't have any dataSyncs in the unconstrainted tests\n * so that we can run backends that have async init and async data reads against\n * our exported test files.\n */\n\n// Use require here to workaround this being a circular dependency.\n// This should only be done in tests.\n// tslint:disable-next-line: no-require-imports\nrequire('@tensorflow/tfjs-backend-cpu');\nimport './index';\nimport './public/chained_ops/register_all_chained_ops';\nimport './register_all_gradients';\nimport {setTestEnvs} from './jasmine_util';\nimport {registerBackend, engine} from './globals';\nimport {KernelBackend} from './backends/backend';\nimport {getKernelsForBackend, registerKernel} from './kernel_registry';\n\n// tslint:disable-next-line:no-require-imports\nconst jasmine = require('jasmine');\n\nprocess.on('unhandledRejection', e => {\n throw e;\n});\n\nclass AsyncCPUBackend extends KernelBackend {}\nconst asyncBackend = new AsyncCPUBackend();\n\n// backend is cast as any so that we can access methods through bracket\n// notation.\nconst backend: KernelBackend = engine().findBackend('cpu');\nconst proxyBackend = new Proxy(asyncBackend, {\n get(target, name, receiver) {\n if (name === 'readSync') {\n throw new Error(\n `Found dataSync() in a unit test. This is disabled so unit tests ` +\n `can run in backends that only support async data. Please use ` +\n `.data() in unit tests or if you truly are testing dataSync(), ` +\n `constrain your test with SYNC_BACKEND_ENVS`);\n }\n //@ts-ignore;\n const origSymbol = backend[name];\n if (typeof origSymbol === 'function') {\n // tslint:disable-next-line:no-any\n return (...args: any[]) => {\n return origSymbol.apply(backend, args);\n };\n } else {\n return origSymbol;\n }\n }\n});\n\nconst proxyBackendName = 'test-async-cpu';\n\n// The registration is async on purpose, so we know our testing infra works\n// with backends that have async init (e.g. WASM and WebGPU).\nregisterBackend(proxyBackendName, async () => proxyBackend);\n\n// All the kernels are registered under the 'cpu' name, so we need to\n// register them also under the proxy backend name.\nconst kernels = getKernelsForBackend('cpu');\nkernels.forEach(({kernelName, kernelFunc, setupFunc}) => {\n registerKernel(\n {kernelName, backendName: proxyBackendName, kernelFunc, setupFunc});\n});\n\nsetTestEnvs([{\n name: proxyBackendName,\n backendName: proxyBackendName,\n isDataSync: false,\n}]);\n\nconst runner = new jasmine();\n\nrunner.loadConfig({spec_files: ['dist/**/**_test.js'], random: false});\nrunner.execute();\n"]}
\No newline at end of file