westerndigitalcorporation / stat Goto Github PK
View Code? Open in Web Editor NEWStandalone unit-testing framework for software written in C
Standalone unit-testing framework for software written in C
If no call to a certain derived test-double is performed, every API that returns on-call statistics (e.g. spy-data) should fail on read attempt instead of returning any data.
Additional examples of user-case setup along with some corner case scenarios might provide a good improvement for documentation and also as additional tests for handling of different corner cases.
Might consider to split this task to two separate efforts/tickets.
Testing the latest version (1.2.0) on a real product revealed the following issues:
If a comment is interleaved with the values of a macro defintion, makefile parser doesn't ignore its contents.
This behavior conflicts with IDE-writers, since it attempts to treat the comment as a valid entry and fails on it.
For instance:
SOURCES = \
file_x.c\
# file_y.c\ <--this comment will be treated by parser as a file, and it shouldn't
file_z.c
NMAKE shows an inconsistent behavior in dealing with assignment of values to environment variables. This caused to invariant behavior of the incremental build, which is affected by the amount of times certain environment variable is set (not as part of a batch file). Therefore, sometimes incremental build works correctly, but sometimes it fails.
GMake (a.k.a. GNU Make tool) is a cross-platform Make tool. Migrating to it, will simplify the procedure of entending the framework to platforms other than Windows.
A new quite critical bug has spotted within makefiles that disturbs it work:
We used STAT_ADD_NUMERIC_MOCK to mock a variable that is from float type.
For some reason, we didn't get the correct value.
after a debug session, we saw that the converting from float to unsign was incorrect, and required the same method like in STAT_ADD_MOCK when the value is copied as void.
After the framework has migrated to GMake tool, a new design of the core makefiles causes a significant performance degradation on Windows platform.
makestat -vs
creates a vs 2019 solution, when vs2019 is installed on the computer.
Currently, this solution is not opened with correct directory view - to show the files arranged by their actual folder. instead files are presented flat on the solution explorer.
If the previous framework run for a test-package succeeded to compile and to pass, then the subsequent incremental run won't fail in case the compilation fails, but will run previously compile test-package executable.
Temporary workaround: add a '-cc' command-line argument to each framework re-run.
Today, on Windows STAT supports full MSVS variations (i.e. build tools with IDE). To support better DevOps and lower expenses it has been requested by some users to add support standalone MS Build Tools (i.e. w/o IDE).
This is especially relevant now, when a support for VSCode has been added to the framework.
The current version of NMAKE script is very basic that rebuilds each test-package in full.
It would be nice to add the framework ability to provide several options of building:
To enable the framework on Linux it must be able to compile on Linux. GNU Compiler was chosen as a default one for Linux platform.
Add a support to STAT that will produce symbolic link to source to some dedicated folder (like I do with the headers) and compile them from there, this isolating source files from header files.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.