Comments (3)
I like the way you are testing the loader here. I think I have an idea to completely automate the generation of 95% of the test.
I have a couple of questions though, and one remark. Questions:
- Is there any reason to avoid generating a mockup ICD? This would allow testing a 100% of the API while staying generated. I imagine the problem would lie with Windows, as on unixes I don't see any obstacles.
- We could also use the same approach to create a test layer to check cases where the call can't dispatch, and the layer mechanism.
- Do you mind if I pick-up where you left it?
Remark:
- Using the same framework to generate both the loader and the tests, what is the intrinsic value of the tests? Wouldn't the tests have the same blind spots as the generated loader?
from opencl-icd-loader.
- Do you mind if I pick-up where you left it
No, not at all! I'm also happy to help if needed, just let me know what I can do.
- Using the same framework to generate both the loader and the tests, what is the intrinsic value of the tests? Wouldn't the tests have the same blind spots as the generated loader?
This is a very interesting question now that we're generating most of the loader...
from opencl-icd-loader.
Using the same framework to generate both the loader and the tests, what is the intrinsic value of the tests? Wouldn't the tests have the same blind spots as the generated loader?
One alternative is to test the generator itself, e.g. for input X does it produce expected output Y. The variety of patterns in cl.xml
, however, means it would be hard to write tests with good coverage. Also if the bug is in cl.xml itself no test generation approach will catch it.
The current testing is pretty minimal. Pragmatically I think generated testing could still provide more safety than that, even with the risk of blind spots. For hand-written testing there is still the CTS providing more coverage, just with unknown timescales to discover issues because it's not suitable for use in CI here.
from opencl-icd-loader.
Related Issues (20)
- Failed to get number of platforms on Mac Intel and Mac M1 HOT 2
- Improve FreeBSD Support HOT 3
- Please add OpenCL.pc so pkg-config can find this package
- difficulties building with 32-bit mingw-i686 HOT 5
- failed assert: len == (sizeof(cszLibraryName) - 1)
- handle update to macos github actions workflow HOT 1
- new CI failure related to Ubuntu gcc-11 HOT 2
- mingw build failed since commit 551a74d
- Support -fvisibility=hidden HOT 3
- Incorrect usage of LoadLibrary and string literal HOT 4
- do strings in the Windows resource file need a prefix HOT 1
- consider enabling some KHR_ICD_TRACE messages by default HOT 2
- Spack package HOT 5
- OpenCL installation on Ubuntu 20.04 HOT 3
- Error i stumbled upon HOT 1
- Sigverif.exe says opencl.dll is not signed HOT 2
- Broken static builds on Windows HOT 3
- missing clGetKernelSuggestedLocalWorkSizeKHR API?
- Consider CI Configurations with Different Calling Conventions
- Vendor & layer paths on Android
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from opencl-icd-loader.