<commit_before>Unit tests for Strong ARM.

This compiles into a binary that can be loaded into real hardware (STM32F4DISCOVERY right now).
When the binary runs, it runs through all the unit tests, and returns results on STDOUT.

Currently, STDOUT is handled with a breakpoint in an empty function which is passed the string(s) that would normally go to STDOUT. 
This will be replaced with semihosting.


To compile for STM32F4DISCOVERY:
	* make

To compile for x86 (Cygwin's MinGW):
	* make CYGWIN_MINGW=1<commit_msg>Added instructions to tests/README.md on how to run the unit test program.<commit_after>Unit tests for Strong ARM.

This compiles into a binary that can be loaded into real hardware (STM32F4DISCOVERY right now).
When the binary runs, it runs through all the unit tests, and returns results on STDOUT.

Currently, STDOUT is handled with a breakpoint in an empty function which is passed the string(s) that would normally go to STDOUT. 
This will be replaced with semihosting.


To compile for STM32F4DISCOVERY:
	* make

To compile for x86 (Cygwin's MinGW):
	* make CYGWIN_MINGW=1


To run tests on an STM32F4DISCOVERY or similiar:
	* make
	* openocd -f board/stm32f4discovery.cfg
	* make flash-and-debug
	* continue
	* GDB will hit a breakpoint when the program is trying to print a message.
	* Either the program says ALL TESTS PASSED along with some debug messages from
		the random module, or it will report an error.
{'fraction_non_alphanumeric': 0.04456824512534819, 'fraction_numerical': 0.016713091922005572, 'mean_word_length': 4.302583025830258, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '5648143', 'n_tokens_mistral': 450, 'n_tokens_neox': 430, 'n_words': 215}