Pietro Gagliardi
|
e2baa5bb5c
|
And finished rewriting timerRunWithTimeout() on Windows, including reentrancy improvements, race condition elimination, setjmp() volatility correctness fixes, and global state reduction.
|
2019-05-03 01:54:26 -04:00 |
Pietro Gagliardi
|
8b5b03794c
|
Started moving testingRunWithTimeout() into timer.h.
|
2019-05-02 23:15:49 -04:00 |
Pietro Gagliardi
|
313f5864f5
|
Fixed the timer functions on Windows.
|
2019-05-02 22:03:57 -04:00 |
Pietro Gagliardi
|
42623f92e9
|
And started breaking apart the timer functions.
|
2019-05-02 12:38:59 -04:00 |
Pietro Gagliardi
|
5537e823ef
|
Started splitting out the timer stuff into its own mini-library. Also I decided to drop the fallback stuff, since we run on new enough systems anyway, and nanosleep() is available on every version of macOS we need anyway.
|
2019-05-02 12:14:08 -04:00 |
Pietro Gagliardi
|
99a0f9084c
|
Fixed building on Ubuntu Trusty.
|
2019-05-02 02:01:42 -04:00 |
Pietro Gagliardi
|
796a9cf010
|
Resolved some TODOs in testing_darwinunix.c, including writing a more elaborate implementation of testingSleep().
|
2019-04-30 21:00:52 -04:00 |
Pietro Gagliardi
|
7d29c4346d
|
Decided not to make the thread functions report errors to the testingT object; I'm still not a big fan of the thread model here, but I'd like to actually split the thread functions out of the testing library entirely, since they are only used for the tests in initmain.c.
|
2019-04-30 13:15:36 -04:00 |
Pietro Gagliardi
|
25d4021269
|
Resolved timer/duration variable name TODO.
|
2019-04-30 09:32:48 -04:00 |
Pietro Gagliardi
|
965dec0157
|
Settled the PostThreadMessage() TODOs in the Windows testing code.
|
2019-04-30 02:31:08 -04:00 |
Pietro Gagliardi
|
848c3813ee
|
Cleaned up the error handling in the Windows testing code by also creating HRESULT functions for whatever it calls. This resolves a bunch of the TODOs in that file.
|
2019-04-30 01:18:48 -04:00 |
Pietro Gagliardi
|
db6b6fd97b
|
Provided a mechanism for the testing library to abort on an internal error; redefined memory allocation to do so. This will also be used for resolving many of the TODOs on the Windows testing code.
|
2019-04-29 23:46:08 -04:00 |
Pietro Gagliardi
|
05af10aade
|
Added ARM64 to the CPU-specific Windows testing code.
|
2019-04-29 22:34:28 -04:00 |
Pietro Gagliardi
|
2282ee2cf8
|
Removed TODOs about overflow; we really can't handle overflow properly anyway, so eh.
|
2019-04-29 00:18:26 -04:00 |
Pietro Gagliardi
|
f948c30a3b
|
Simplified testingTimerNsec() on Windows. _div128() would make this super simple, but that's only available on VS2019, and it seems no one has implemented this in software elsewhere (the most I can find are unsigned ones...).
|
2019-04-28 23:20:01 -04:00 |
Pietro Gagliardi
|
3257710fb7
|
Fixed bad timers on GTK+ tests. Turns out that clock() doesn't count when the process isn't actively running code (for instance, if it's waiting for I/O) :|
|
2019-04-28 21:49:54 -04:00 |
Pietro Gagliardi
|
74468bb38f
|
And implemented the multithreading stuff on Unix and Darwin. We can finally continue re-adding stuff to libui!
|
2019-04-28 21:22:11 -04:00 |
Pietro Gagliardi
|
df8eadb980
|
And added the multithreaded uiQueueMain() tests.
|
2019-04-28 20:45:53 -04:00 |
Pietro Gagliardi
|
6c41fb712e
|
More notes.
|
2019-04-28 19:11:52 -04:00 |
Pietro Gagliardi
|
74ca863c1b
|
More TODOs.
|
2019-04-28 19:07:41 -04:00 |
Pietro Gagliardi
|
5fb4e4403e
|
And implemented testingRunWithTimeout() on Windows. All tests currently pass on all platforms! Woo!
|
2019-04-28 19:04:27 -04:00 |
Pietro Gagliardi
|
8ffb2b1b1e
|
Fixed build warnings and errors. Now we just need to implement testingRunWithTimeout() on Windows.
|
2019-04-28 16:35:25 -04:00 |
Pietro Gagliardi
|
49bde22f81
|
More TODOs.
|
2019-04-28 14:54:33 -04:00 |
Pietro Gagliardi
|
bdf80516c5
|
Reimplemented uiMain() and friends on GTK+.
|
2019-04-28 14:52:39 -04:00 |
Pietro Gagliardi
|
b20bf2d1c9
|
Wrote TestQueueMain_Sequence.
|
2019-04-28 14:41:30 -04:00 |
Pietro Gagliardi
|
e03021a350
|
Piped the actual file/line through to testingRunWithTimeout().
|
2019-04-28 13:26:15 -04:00 |
Pietro Gagliardi
|
64478bd5b0
|
Finished cleaning up the TimerNsec naming wonk.
|
2019-04-28 13:19:04 -04:00 |
Pietro Gagliardi
|
1bc2297597
|
Added a facility to do timeouts in test functions. Also started cleaning up the weird TimerNsec abstractions.
|
2019-04-28 13:12:40 -04:00 |
Pietro Gagliardi
|
9c70782a0f
|
Added uiMain() and friends on macOS and refined the tests. So now we'll need to add a timeout mechanism because that sendEvent: stuff really is still neeeded and I'd like to prevent shenanigans later.
|
2019-04-28 11:48:21 -04:00 |
Pietro Gagliardi
|
aa49da98ba
|
And implemented testingTimer on Windows.
|
2019-04-23 22:49:28 -04:00 |
Pietro Gagliardi
|
7e631879e7
|
Wrote the Unix clock function. It's primitive, but it works.
|
2019-04-23 12:26:52 -04:00 |
Pietro Gagliardi
|
4bd1ba2fa5
|
Oops; flipped a boolean.
|
2019-04-22 23:03:12 -04:00 |
Pietro Gagliardi
|
bd1ca240e3
|
Added timers to the testing framework, test timing (so no more of those pesky TODOs), and the OS X implementation of test timing.
|
2019-04-22 23:01:55 -04:00 |
Pietro Gagliardi
|
23591eeefa
|
Executive decision: drop uiUnint(). This was really more for double-checking *my* work, mostly with regards to memory management, and we could probably do that in the test suite instead, or even with AddressSanitizer.
|
2019-04-21 20:59:36 -04:00 |
Pietro Gagliardi
|
80ca6e2fc1
|
More notes.
|
2019-04-21 18:00:38 -04:00 |
Pietro Gagliardi
|
63952a3e20
|
ANd integrated the test manifest back into the tester.
|
2019-04-21 17:59:29 -04:00 |
Pietro Gagliardi
|
b8b3b3df39
|
Fixed the rest of the build errors and warnings. Woo! Now for the manifests.
|
2019-04-21 17:28:47 -04:00 |
Pietro Gagliardi
|
f7867f3427
|
ALMOST fixed the build on Windows with MSVC. (For the change to test/testing.h: Even in VS2019 inline isn't available in C, ugh. That function doesn't need to be inline anyway, so eh.)
|
2019-04-21 15:08:09 -04:00 |
Pietro Gagliardi
|
484989e925
|
Implemented uiInit() on macOS. The tests work so far!
|
2019-04-20 21:38:26 -04:00 |
Pietro Gagliardi
|
5e45afd0a2
|
More TODOs.
|
2019-04-19 12:13:08 -04:00 |
Pietro Gagliardi
|
6f3d45b107
|
Made it so that normal and after tests don't run if before tests failed.
|
2019-04-19 12:12:13 -04:00 |
Pietro Gagliardi
|
da36b304f8
|
Wrote the uiInit() test.
|
2019-04-19 12:10:45 -04:00 |
Pietro Gagliardi
|
e5e60284fb
|
More desirable sorting of tests: by line number per file, specifically. Also per-file, but that can remain unguaranteed if I ever spin this out into its own library.
|
2019-04-17 22:58:44 -04:00 |
Pietro Gagliardi
|
16c6425200
|
Reorganized test sets into growing arrays. We can sort them next.
|
2019-04-17 22:12:32 -04:00 |
Pietro Gagliardi
|
dcf34e6dab
|
Set up the necessary work for having the list of tests sort by filename/line number instead of init order.
|
2019-04-17 21:49:47 -04:00 |
Pietro Gagliardi
|
59b449b920
|
Added rudimentary test ordering, for the Init and Uninit tests.
|
2019-04-10 20:17:40 -04:00 |
Pietro Gagliardi
|
1b046e763b
|
Fixed the test suite.
|
2019-04-10 20:11:44 -04:00 |
Pietro Gagliardi
|
4f381d04a1
|
Added some test cases and the build script.
|
2019-04-10 14:42:17 -04:00 |
Pietro Gagliardi
|
759d6d1e46
|
Allowed deferred functions to access the testingT. If they call FailNow, we act as if nothing happens and the defers keep running.
|
2019-04-10 14:27:21 -04:00 |
Pietro Gagliardi
|
0149639edc
|
Cleaned things up a bit for libui's test suite.
|
2019-04-10 14:19:17 -04:00 |