unprintableNames.https.any.js (1509B)
1 // META: title=test graph inputs/outputs with unprintable names 2 // META: global=window,worker 3 // META: variant=?cpu 4 // META: variant=?gpu 5 // META: variant=?npu 6 // META: script=../resources/utils.js 7 // META: timeout=long 8 9 'use strict'; 10 11 let mlContext; 12 13 // Skip tests if WebNN is unimplemented. 14 promise_setup(async () => { 15 assert_implements(navigator.ml, 'missing navigator.ml'); 16 mlContext = await navigator.ml.createContext(contextOptions); 17 }); 18 19 promise_test(async () => { 20 const operandDescriptor = { 21 dataType: 'float32', 22 shape: [1], 23 }; 24 25 // Construct a simple graph: A = B * 2. 26 const builder = new MLGraphBuilder(mlContext); 27 const inputOperand = builder.input('input\x00tensor', operandDescriptor); 28 const constantOperand = 29 builder.constant(operandDescriptor, Float32Array.from([2])); 30 const outputOperand = builder.mul(inputOperand, constantOperand); 31 const mlGraph = await builder.build({'output\x00tensor': outputOperand}); 32 33 const [inputTensor, outputTensor] = await Promise.all([ 34 mlContext.createTensor({dataType: 'float32', shape: [1], writable: true}), 35 mlContext.createTensor({dataType: 'float32', shape: [1], readable: true}) 36 ]); 37 38 mlContext.writeTensor(inputTensor, Float32Array.from([1])); 39 40 mlContext.dispatch( 41 mlGraph, {'input\x00tensor': inputTensor}, 42 {'output\x00tensor': outputTensor}); 43 44 const output = await mlContext.readTensor(outputTensor); 45 assert_equals(new Float32Array(output)[0], 2); 46 }, 'tensor names can include null bytes');