[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Test results as XML files
[Thread Prev] | [Thread Next]
- Subject: Re: Test results as XML files
- From: "James Grenning" <james@xxxxxxxxxxxx>
- Date: Mon, 09 Feb 2015 06:51:19 -0600
- To: James.Munns@xxxxxxxxxxxxx
- Cc: "Andreas Schneider" <asn@xxxxxxxxxxxxxx>, cmocka@xxxxxxxxxxxxxx
Common mistake I make, need to do N things, do N-1 :) https://wingman-sw.com/articles/get-your-legacy-c-into-a-test-harness On 9 Feb 2015, at 6:46, James.Munns@xxxxxxxxxxxxx wrote:
Hey James, Thanks for getting back to me, I have already instrumented some pre-processor decisions to make the code work on both targets, theseremaining items are the ones I couldn't seem to fix without modification of the CMocka framework (not desirable to be out of sync with mainline), or modification of Code Under Test (not viable for adding additional tests to legacy software). The majority of the issues here are due to underlying differences between the C Standard Library and other "given components",based on my embedded compiler's limited implementation of certain features.Currently I have the luxury of completely separate "Make Files" (a real make file with GCC+CI, an embedded project for the simulator target), so I can set #defines and include paths as I see fit. This definitely has beenhelpful already.I believe you left a link out of your response, but I would be happy to review any information you can provide. Even if it is not applicable to mycurrent issues, it may be helpful in the future. Thanks again, -James From: "James Grenning" <james@xxxxxxxxxxxx> To: James.Munns@xxxxxxxxxxxxx,Cc: "Andreas Schneider" <asn@xxxxxxxxxxxxxx>, cmocka@xxxxxxxxxxxxxxDate: 09.02.2015 13:25 Subject: Re: Test results as XML files Hello JamesYou may be able to make your code work with cmocka in both environments using various pre-processor controls. Here is an article that includestesting problems and the the preprocessor controls that can be used tosolve those problems. I am not sure if these really apply to both yourissues or not. It probably could help with the typedef problem. Iconsider the pre-processor the last tool to use when getting code into a unit test harness. But sometimes it is the only option where you do notneed to change the code under test. Something we did with CppUTest, another open source test harness Icontribute to, is to separate system dependent code. The makefile wouldchoose the appropriate platform files to build depending on theplatform. We have a PlatformSpecific.cpp file that would provide systemdependent functions. James -------------------------------------------------------------------------- James Grenning - Author of TDD for Embedded C - pragprog.com/titles/jgade/ wingman-sw.com wingman-sw.com/blog twitter.com/jwgrenning facebook.com/wingman.sw []( http://wingman-sw.com) On 9 Feb 2015, at 3:54, James.Munns@xxxxxxxxxxxxx wrote:Hey Andreas, a couple of comments. The background for this is that I am running tests using both GCC (for CI) as well as using an embedded compiler compiling to a simulator target (for the sake of developers usingthe same IDE as primary development). This may not be within the scopeof your development, but may be useful to other users, portability wise. CMocka seems to make some assumptions at compile time, more or less that the target environment is Unix-like/GCC compiled or Windows-like/VS compiled. This breaks compilation for me in a couple ways. 1: My embedded compiler defines some, but not all of the exception signalsin the array in cmocka.c:281. This is not new to cMocka 1.0, for now Ihave added in a compiler flag to change the definition of this array. It would be nice to have an option to be blind of exceptions at compile time (sort of like 'handle_exceptions', but at compile time rather than runtime). 2: I had some problems with the 'uintptr_t' logic in cmocka.h:101.Probably nothing unique about that type, except that it was defined inanother header file. Unfortunately I have no way of "informing" cmocka.h about my other 'stdint.h' file, and a re-def of uintptr_t makes the compiler sad. Again, this is not new to cMocka 1.0. It might be nice to have some sort of user defined includes? Something like the following at the top of the headers?: #ifdef _CMOCKA_USER_INCLUDES #include "cmocka_user_includes.h" #endif3. This one actually is new to cMocka 1.0. My compiler defines time.h,but does not define the struct 'timespec'. Similar to my exceptions comment,there is some handling for targets not supporting test timing, howeverthis is not completely transparent at compile time. I could fill in the definition of timespec, however I dont really have any way of letting cmocka.c know where to find it (modifying my compiler's time.h is not an option). It would be nice to have a compiler flag to completely exclude the timing component. Up to now I've just fixed items 1 and 2 in little hacks of the file that are "good enough" for my compiler, though likely not very useful or portable. It would be nice to see these supported in mainline development, if you have any ideas. Please let me know if you have any questions, would like these filed astickets for addressing later, or have any changes you would like me totry out. Thanks! -James From: Andreas Schneider <asn@xxxxxxxxxxxxxx> To: cmocka@xxxxxxxxxxxxxx, Cc: James.Munns@xxxxxxxxxxxxx Date: 06.02.2015 13:04 Subject: Re: Test results as XML files On Friday 06 February 2015 12:58:07 Andreas Schneider wrote:On Friday 06 February 2015 11:39:59 James.Munns@xxxxxxxxxxxxx wrote:Hey,Hi,Will the source be pushed anywhere before the 1.0 release? I'd love to test it out on my environment.the source code is available here: http://git.cryptomilk.org/users/asn/cmocka.git/log/?h=rewritePlease let us know if it works for you. Suggestions and patches are welcome ;) -- MSA Technologies and Enterprise Services GmbH Firmensitz (Registered Headquarter): Thiemannstr. 1, 12059 Berlin Ust.-ID: DE 237 346 046 Registergericht (Register Court): Amtsgericht Berlin-Charlottenburg Nr.93, HRB 92728 B Geschäftsführer (Managing Director): Richard W. Roda, Kenneth D. Krause, Steven C. Blanco-- MSA Technologies and Enterprise Services GmbH Firmensitz (Registered Headquarter): Thiemannstr. 1, 12059 Berlin Ust.-ID: DE 237 346 046Registergericht (Register Court): Amtsgericht Berlin-Charlottenburg Nr.93, HRB 92728 B Geschäftsführer (Managing Director): Richard W. Roda, Kenneth D. Krause, Steven C. Blanco
Re: Test results as XML files | James.Munns@xxxxxxxxxxxxx |
Re: Test results as XML files | Andreas Schneider <asn@xxxxxxxxxxxxxx> |
Re: Test results as XML files | Andreas Schneider <asn@xxxxxxxxxxxxxx> |
Re: Test results as XML files | James.Munns@xxxxxxxxxxxxx |
Re: Test results as XML files | "James Grenning" <james@xxxxxxxxxxxx> |
Re: Test results as XML files | James.Munns@xxxxxxxxxxxxx |