diff options
Diffstat (limited to '')
-rw-r--r-- | dom/canvas/test/webgl-conf/checkout/conformance/more/conformance/argGenerators-B3.js | 68 |
1 files changed, 68 insertions, 0 deletions
diff --git a/dom/canvas/test/webgl-conf/checkout/conformance/more/conformance/argGenerators-B3.js b/dom/canvas/test/webgl-conf/checkout/conformance/more/conformance/argGenerators-B3.js new file mode 100644 index 0000000000..2a4796d914 --- /dev/null +++ b/dom/canvas/test/webgl-conf/checkout/conformance/more/conformance/argGenerators-B3.js @@ -0,0 +1,68 @@ +/* +Copyright (c) 2019 The Khronos Group Inc. +Use of this source code is governed by an MIT-style license that can be +found in the LICENSE.txt file. +*/ + +// ArgGenerators contains argument generators for WebGL functions. +// The argument generators are used for running random tests against the WebGL +// functions. +// +// ArgGenerators is an object consisting of functionName : argGen -properties. +// +// functionName is a WebGL context function name and the argGen is an argument +// generator object that encapsulates the requirements to run +// randomly generated tests on the WebGL function. +// +// An argGen object has the following methods: +// - setup -- set up state for testing the GL function, returns values +// that need cleanup in teardown. Run once before entering a +// test loop. +// - teardown -- do cleanup on setup's return values after testing is complete +// - generate -- generate a valid set of random arguments for the GL function +// - returnValueCleanup -- do cleanup on value returned by the tested GL function +// - cleanup -- do cleanup on generated arguments from generate +// - checkArgValidity -- check if passed args are valid. Has a call signature +// that matches generate's return value. Returns true +// if args are valid, false if not. +// +// Example test loop that demonstrates how the function args and return +// values flow together: +// +// var setupArgs = argGen.setup(); +// for (var i=0; i<numberOfTests; i++) { +// var generatedArgs = argGen.generate.apply(argGen, setupArgs); +// var validArgs = argGen.checkArgValidity.apply(argGen, generatedArgs); +// var rv = call the GL function with generatedArgs; +// argGen.returnValueCleanup(rv); +// argGen.cleanup.apply(argGen, generatedArgs); +// } +// argGen.teardown.apply(argGen, setupArgs); +// +ArgGenerators = { + +// GL functions in alphabetical order + +// B-3 + + bufferData : { + setup : function() { + var buf = GL.createBuffer(); + var ebuf = GL.createBuffer(); + GL.bindBuffer(GL.ARRAY_BUFFER, buf); + GL.bindBuffer(GL.ELEMENT_ARRAY_BUFFER, ebuf); + return [buf, ebuf]; + }, + generate : function(buf, ebuf) { + return [bufferTarget.random(), randomBufferData(), bufferMode.random()]; + }, + checkArgValidity : function(target, bufData, mode) { + return bufferTarget.has(target) && isBufferData(bufData) && bufferMode.has(mode); + }, + teardown : function(buf, ebuf) { + GL.deleteBuffer(buf); + GL.deleteBuffer(ebuf); + }, + } + +}; |