New release of c64unit version 0.65 and support for CPrint page
2018-08-24
Necessity is the mother of invention. And then discover what's beyond.
New release of c64unit test framework has been published. In version 0.65 you'll see the happy end a.k.a. "all tests are green" message with number of assertions performed. And from now, all messages in c64unit are displayed in lowercase which is much easier to read. And the last change on the presentation layer was to introduce a new background colour of the screen, grey from now, not blue. But under the surface more is coming!
As we speak, c64unit supports 6 cross-assemblers. Everything started with 64tass as the idea of having a small test framework just to help with ongoing Commocore projects. And then the great potential revealed. First experimentations with DASM cross-assembler evolved to implement Kick Assembler as well, which only proved that limitations can be overcome. Followed by ACME and ca65, finally xa65 was added as the latest. And that's not the end, as in the near future, support for Retro Assembler is planned.
Let's have a look at the latest functional improvements. Starting from functions, they were enriched by a set of negated assertions for status processor flags e.g. assertCarryFlagNotSet. Moreover another very useful - so called - "dataset" handler has been added to the toolbox: getDataSetWordToLoHi. It allows very easily to provide data from any table into separate lo- and hi-byte address locations, in opposite to getDataSetWord which stores a word into one 16-bit address location.
Lot of functions were revisited, and fully covered with tests in examples repository which is a great resource to learn how to work with c64unit - just by example. With 31 types of assertion functions, the ability to mock functions, an easy way to work on larger data sets (scenarios), and 6 supported cross-assemblers, c64unit started to be a really powerful tool to help in the development process.
That would be a lot of new improvements already, but it's not the end! Under the surface, work continues on the completely separated implementation of c64unit in C language! Adding a support for ca65 assembler was just an ignition to expand it also to cc65 compiler, which compiles code written in C to assembly. And I have to admit that an implementation in C goes much faster than it was progressing in assembly. However, due to nature of the language, after all, a high-level language in comparison to assembly, abstraction level differs - thus different assertions are needed. Lot of things need to be discovered. Currently, basic assertions have been implemented so feel free to try it out with your own projects. And it's simple, just follow instructions in the c64unit for C repository. For an easy start, examples can be found in this repository.
It's a completely new adventure, and at this stage it's hard to guess what the C implementation of c64unit should contain. Discovery process continues. Feedback is a crucial factor over here, so if you're reading it still, I encourage you to try c64unit out, and tell us what do you think. We want to support you, please support us! Let us know if you like this framework, share your experience and spread the word!