Commit Graph

4140 Commits

Author SHA1 Message Date
Pietro Gagliardi 8e5a12b869 And changed unusedIDs to use uiprivArray. Now we can transplant this into testing. 2019-05-19 15:46:09 -04:00
Pietro Gagliardi 02b61c0156 Changed uiEvent.handlers into a uiprivArray; also fixed the buggy implementations of InsertAt and Delete. 2019-05-19 14:37:32 -04:00
Pietro Gagliardi 745440b1e7 Wrote array manipulation functions. Now to convert events.c to use them. 2019-05-19 12:52:06 -04:00
Pietro Gagliardi 66f1f75992 Started rearranging things to allow for subtests; I should clean up the allocation stuff in libui first, so they can be borrowed. 2019-05-19 11:05:20 -04:00
Pietro Gagliardi efb761f5f2 More notes. 2019-05-19 09:31:32 -04:00
Pietro Gagliardi 35759935ae Added more cases to the AddDelete tests. Now to add subtests so we can more easily pluralize these tests, including handling cases of different senders. 2019-05-19 01:06:43 -04:00
Pietro Gagliardi a81ea6e3fb Fixed events not being deleted properly. 2019-05-19 01:00:25 -04:00
Pietro Gagliardi 973696137f Reduced noise in event tests when a handler that should have run did not run. 2019-05-18 22:21:23 -04:00
Pietro Gagliardi 3b1f5e0e54 Added more event tests. DeleteHandler obviously does not work... and I really need to add subtests. 2019-05-18 21:21:55 -04:00
Pietro Gagliardi 43f7d1a661 Started the events test suite. 2019-05-18 13:26:55 -04:00
Pietro Gagliardi 66247ce73d Fixed building events.c. 2019-05-18 10:00:07 -04:00
Pietro Gagliardi 25afc9b13f And finished writing events.c. Now to write the tests. 2019-05-17 22:40:29 -04:00
Pietro Gagliardi 56156f549b Bah C99 2019-05-16 23:34:33 -04:00
Pietro Gagliardi 96c346c2dd Added uiprivAlloc() and friends and implemented uiNewEvent(). 2019-05-16 23:02:03 -04:00
Pietro Gagliardi bd84da7179 More implementation of uiEvent. Now we'll need to deal with memory allocation. 2019-05-16 12:27:04 -04:00
Pietro Gagliardi caa926feeb Started implementing and deduplicating the error handling in events.c. 2019-05-15 23:11:21 -04:00
Pietro Gagliardi 55a7e3e56e Started implementing events. 2019-05-15 22:40:06 -04:00
Pietro Gagliardi 101df7a469 Added uiEvent-specific programmer errors. Next up: actually implementing uiEvent. 2019-05-14 11:03:03 -04:00
Pietro Gagliardi 7c128e7bcd Added internal errors and refined the error handling somewhat. 2019-05-13 21:30:18 -04:00
Pietro Gagliardi 45f69cf058 Renamed programmererror.c to errors.c so we can add internal errors (which used to be called implementation bugs). 2019-05-13 10:46:42 -04:00
Pietro Gagliardi 7022e6f268 More programmer error refinement. 2019-05-13 06:37:19 -04:00
Pietro Gagliardi 0d21bf8846 Added Debugger() to the programmer error handler on macOS. This will also be used when I add a bug-in-libui function. 2019-05-13 01:00:19 -04:00
Pietro Gagliardi b3049b0a1e Started reintegrating what used to be called user bugs; they're now called programmer errors. We'll create a much more systematic approach to them. Implemented on macOS. 2019-05-12 22:17:24 -04:00
Pietro Gagliardi 781a4117a7 Slightly more documentation. Now to figure out error handling. 2019-05-12 13:59:31 -04:00
Pietro Gagliardi 1a047da08c Fuck it, we're going with <stdbool.h>. I don't like it, but meh. 2019-05-12 13:41:43 -04:00
Pietro Gagliardi d7fa5e63be More events.md stuff. I need to decide if I should just give in and use <stdbool.h>... 2019-05-11 13:40:36 -04:00
Pietro Gagliardi 637c7a7e2c Oops 2019-05-10 21:36:38 -04:00
Pietro Gagliardi 07dc3ee025 Finished the test set implementation, moving the tester itself to use it. This also moves uiInit() into main(); in TestInit, we'll hook into uiInit() to avoid actually doing the initialization. 2019-05-10 21:16:29 -04:00
Pietro Gagliardi 7f986ef073 Started adding more flexible test set functionality. 2019-05-09 22:54:14 -04:00
Pietro Gagliardi f97383f66c Rearranged things so that uiInit() itself is in common/init.c and the OS-specific initialization code is its own standalone internal function. This'll make testing a bit easier, especially after the next few commits, and will allow me to test pre-initialization and cross-thread stuff a bit more easily. 2019-05-09 12:07:28 -04:00
Pietro Gagliardi e1c970bdbd More event interface refining. 2019-05-07 23:12:18 -04:00
Pietro Gagliardi 4aaad25c02 Started writing the documentation for the new event handling interface. At this point I'm tempted to forego the overview sections for the time being, since all the contractual stuff would go in the reference. 2019-05-07 23:05:31 -04:00
Pietro Gagliardi ab42a9ed08 More xvfb-like notes. I'm not sure if I'll actually do this now or not :/ 2019-05-06 23:02:09 -04:00
Pietro Gagliardi ca570868c9 More notes. 2019-05-06 06:02:22 -04:00
Pietro Gagliardi c79ddfd971 More notes. 2019-05-05 23:40:36 -04:00
Pietro Gagliardi 2e562e4946 Merge branch 'master' into remodel 2019-05-05 23:39:48 -04:00
Pietro Gagliardi 17486fd175 More notes. 2019-05-05 23:39:16 -04:00
Pietro Gagliardi bc0d3120c8 Added verbosity to the test suite. Now we can move on. 2019-05-05 15:59:59 -04:00
Pietro Gagliardi 3ebc58a5bf Fixed build issues in MinGW-w64. 2019-05-05 15:20:54 -04:00
Pietro Gagliardi b7f06074fb Converted testing.c to buffer test output. Also reordered test logs to be after the status line, like in Go. Now we can add verbosity control, and then maybe later even subtests! 2019-05-05 14:26:38 -04:00
Pietro Gagliardi 8b70e6d247 Cleaned up internal helper functions in testing.c, including adding one for vsnprintf() and snprintf(). This is the first step toward buffering test output and adding verbosity control. 2019-05-05 13:35:07 -04:00
Pietro Gagliardi d49f8ae7e6 Switched the macOS code to use timerprivInt128ToUint64(). Also rearranged the arguments of timerprivInt128ToInt64() and added proper timerDurationMin/Max constants instead of the incorrect-for-that-function timerTimeMin/Max in the Windows code. 2019-05-05 11:16:17 -04:00
Pietro Gagliardi ff803bf792 And implemented 128-bit muldiv on Windows. 2019-05-05 11:03:17 -04:00
Pietro Gagliardi 288c74b026 Implemented the new MulDiv128 stuff on macOS. To make things easier in regards to signedness, this implementation also uses a base, like the Unix one, and the mach_timebase_info() conversion is done in timerMonotonicTime() instead. (Also added the admittedly-redundant-since-the-current(ish)-implementation-cannot-fail error check to mach_timebase_info().) As a result, timerTimeSub() can now be end - start on all platforms. Also found and fixed bugs in the actual muldiv128 algorithm implementation. Next up: Windows. 2019-05-05 03:17:11 -04:00
Pietro Gagliardi 952b36b1c2 Added proper 128-bit muldiv() stuff for macOS and Windows. Will actually use them next. Also fixed compiling on non-Windows. 2019-05-05 02:17:11 -04:00
Pietro Gagliardi 7424a9ea6c Added a note on static Windows linking to the using-libui.md that I overlooked all this time until I realized we needed this now. 2019-05-04 21:49:07 -04:00
Pietro Gagliardi ee3e587ddc Fixed build errors on Windows. 2019-05-04 21:47:04 -04:00
Pietro Gagliardi 98093ed46e Formatted test results across multiple lines in the same way as in Go. Also prettyprinted diffs in initmain.c. 2019-05-04 21:13:47 -04:00
Pietro Gagliardi 4c097f93f7 Implemented error checks in test/initmain.c. 2019-05-04 19:21:57 -04:00
Pietro Gagliardi 09e98af110 Removed a stale TODO caused by inaccurate timer code (that was in response to the old clock()-based Unix code). 2019-05-04 19:04:32 -04:00