Commit graph

396 commits

Author SHA1 Message Date
6638120ec2 WIP test-driven dreaming... inventing a "Digxel" entity 2011-01-13 03:36:09 +01:00
607c8a2338 WIP enough stubbing to get it through the Compiler...
...but NOT yet the linker
2011-01-13 03:36:09 +01:00
c40ba74bc6 WIP clarify ambiguity with fractional seconds
They are *not* intended to stand-in for gavl_time_t
Indeed, Time values should be handled as opaque
2011-01-13 03:36:09 +01:00
15214cc069 WIP start stubbing and defining time quantisation and timecode entities 2011-01-13 03:36:08 +01:00
f832e817b8 WIP: test-driven brainstorming how quantisation could be used... 2011-01-13 03:36:08 +01:00
04db5655f1 Implementation: building a simple time grid 2011-01-13 03:36:08 +01:00
3d4227d374 cover offsets, durations and timespans by unit test 2011-01-13 03:36:07 +01:00
643859f6b8 add a mutable time value with full arithmetics 2010-12-28 02:27:42 +01:00
0c45fc47f3 defining the first elementary operations for time values 2010-12-28 02:27:41 +01:00
09d400d5bc put asside the existing "lumitime" to build a new hierarchy from scratch
existing code will still use lumitime.hpp for now
while we're about to reorganise time handling altogether
2010-12-28 02:27:41 +01:00
784b094fa7 fix compilation problems with draft code 2010-12-26 23:00:34 +01:00
000486e126 WIP create empty unit tests for time quantisation/handling 2010-12-22 04:09:27 +01:00
7fc462209e some naming cleanup and namespace indentation fixes 2010-12-18 00:58:19 +01:00
3f1b7651e9 GPL header whitespace 2010-12-17 23:28:49 +01:00
4410830f72 Merge Fixture datastructure and Testsuite work 2010-12-17 22:51:27 +01:00
Stefan Kangas
0fac2b6569 Use CHECK instead of ENSURE in test suite. (Ticket #250) 2010-12-17 21:08:44 +01:00
Stefan Kangas
518f4bac1a Use CHECK instead of REQUIRE in test suite. (Ticket #250) 2010-12-17 21:05:50 +01:00
Stefan Kangas
661e4f0da5 Use CHECK instead of ASSERT in test suite. (Ticket #250) 2010-12-17 20:51:54 +01:00
c4282560ce fix two regressions 2010-12-12 01:53:23 +01:00
145ad6c3a5 more (trivial) cleanup and renaming 2010-12-05 02:46:37 +01:00
d1c64dd1c0 small cleanup, replace try-catch by VERIFY_ERROR macro 2010-12-05 02:46:37 +01:00
bd361523d1 better use functor-style access instead of implicit conversion 2010-11-06 22:49:32 +01:00
f597e7c8b4 optional object link implemented and working 2010-11-06 22:32:08 +01:00
07f7837a7b draft behaviour of a optional/switchable object link 2010-11-06 21:23:35 +01:00
2c58e595c0 augment IterSource adapters by definition through classical iterator range 2010-10-16 02:21:18 +02:00
Christian Thaeter
99d5d3765f FIX: Add remaining tests to the Makefiles, sort Makefiles 2010-07-16 21:44:44 +02:00
Christian Thaeter
d6a18ed9a7 post-merge autotools fixup 2010-07-16 05:39:01 +02:00
cb838ba5b6 extend killer-stash to allow registration of custom deleter functions 2010-06-12 03:12:02 +02:00
eb19f59ba0 deleter memorising component passes unit test (#629) 2010-06-07 03:32:41 +02:00
6b90767468 draft a component to manage deleter functions 2010-06-06 04:26:23 +02:00
dee4c33c55 change the index-interface from free to member functions
part of Ticket #628
2010-06-06 02:11:40 +02:00
2360f9b4c0 Advice colaboration: implemented and passes basic unit test 2010-06-05 05:09:42 +02:00
7895ce5f49 solve the problem with re-binding and advice::Request 2010-06-04 17:25:33 +02:00
72c01e12c9 implement a simple singleton holder for NIL/default objects 2010-06-03 04:40:38 +02:00
69af735070 reconsider advice implementation. Investigate some tricky implementation decisions 2010-06-03 04:40:37 +02:00
7dcdff3287 advice-basics: stubbed and fixed to pass compiler 2010-06-03 04:40:37 +02:00
83b5c8c2c2 WIP code up external advice API 2010-06-03 04:40:37 +02:00
c9437b3bff binding index unit test pass 2010-06-03 04:40:37 +02:00
0c123e4af3 Bugfix 2010-06-03 04:40:36 +02:00
d00d42b58c code up the core solution finding logic 2010-06-03 04:40:36 +02:00
bf02d6d03f adapter interface for the test-entry 2010-06-03 04:40:36 +02:00
530940254e stubbed advice binding index implementation 2010-06-03 04:40:36 +02:00
c8ac2b0447 planning the advice binding index implementation 2010-06-03 04:40:35 +02:00
5b48b9f864 fix a regression regarding struct-asset naming scheme 2010-06-03 04:40:35 +02:00
0514c24487 Advice binding pattern finished, passing unit test
now detecting a lot of syntax errors
2010-06-03 04:40:35 +02:00
1e28c7f1ab get the advice binding unit test to pass thus far 2010-06-03 04:40:35 +02:00
85f8035f92 Implement parsing of Advice binding pattern spec 2010-06-03 04:40:35 +02:00
f2269b7e78 Implement Advice binding pattern 2010-06-03 04:40:35 +02:00
f27024172f Implementation skeleton for advice binding match 2010-06-03 04:40:34 +02:00
e3c963378f outline some implementation details regarding the Bindings to match 2010-06-03 04:40:34 +02:00
3e2b78b670 fill in the basic definitions to make the draft test compile 2010-06-03 04:40:34 +02:00
b789c110fa test-driven brainstorming: how the basic advice collaboration should work 2010-06-03 04:40:34 +02:00
abe8d876dd Start planning the Advice implementation: skeleton of unit tests 2010-06-03 04:40:34 +02:00
a78845507a cleanup 2010-06-03 04:37:20 +02:00
e61eb01942 experimental fix for #307 2010-06-03 04:37:20 +02:00
82d8d26308 extend the map iterator adapter to work on STL ranges 2010-06-03 04:37:20 +02:00
939270063e helper: take snapshot of a given Lumiera or STL iterator 2010-06-03 04:37:20 +02:00
81f87ba852 similar low-level iterator adapter for multimap value groups 2010-06-03 04:37:20 +02:00
c5e4725dcb implement another wrapper to filter duplicates 2010-06-03 04:37:19 +02:00
73a2aea50c draft a low-level adapter to get all keys/vals of a stl::map
intention is just to use a thin wrapper, without
abstracting the implementation type (as IterSource does)
2010-06-03 04:37:19 +02:00
57a9b1a270 Iterator adapter to ennumerate all values to a multimap key (closes #492) 2010-06-03 04:37:19 +02:00
c43040985c more stubbing and compilation fixes 2010-06-03 04:37:18 +02:00
39355713fd cleanup 2010-06-03 04:37:17 +02:00
092ea07b76 kill "the EDL" 2010-06-03 04:37:12 +02:00
5b9aa5deb2 landing the new threadpool implementation 2010-02-15 00:48:52 +01:00
1c63a02e23 augment and round up the C++ thread wrapper 2010-02-14 23:39:15 +01:00
90d311dc1d Error integration: error::Flag as subclass of State. Wrapped throw 2010-02-13 20:56:41 +01:00
dfd70c6069 replace GThreads by the Lumiera thread wrapper 2010-02-11 03:06:42 +01:00
5386fe6fbc clarify (and treat) the race; considered to be test-only
After removing the explicit locking, there is a small
race in case of a "floundering" (simulated) subsystem:
the starting context may go away before the child thread
actually teminates. I consider this a shortcoming of
this test fixture, which isn't intended to be an example
of a real world subsystem, but rather focusses on
error detection within the subsystem runner.
2010-02-07 17:31:28 +01:00
8ad3bf1736 Change subsystem-runner test to remove explicit locking entirely 2010-02-07 02:56:30 +01:00
c406d16fbc threadwrapper-test should have been better written this way... 2010-02-04 18:48:47 +01:00
Christian Thaeter
7ef1bab914 premature fix for the threadwrapper test
Added some more fuzz and sleeping to the test calculation to have a actual
chance to fail when something is not well locked.

Using a premature classlock, locking instances was insufficient.
2010-02-03 10:45:58 +01:00
Christian Thaeter
2b74d82f13 remove threadpool initialization, this is done elsewhere now
Subsystem runner/-test is still broken, sometimes segfaults
2010-01-30 07:37:32 +01:00
Christian Thaeter
e4e87e8cdd log error while setting it 2010-01-30 07:20:09 +01:00
Christian Thaeter
6659ab6ac1 Merge remote branch 'ichthyo/thread_integration' into backend_devel
* ichthyo/thread_integration:
  automatically start the threadpool on demand, similar to NoBug
  refactor the C++ thread-wrapper, remove JoinHandle
2010-01-24 16:24:38 +01:00
ede06e63d5 automatically start the threadpool on demand, similar to NoBug
but the difference is: threadpool comes up application init i.e. at the begin of main(),
while NoBug comes up in static init already.
2010-01-24 15:48:48 +01:00
93af4ed017 refactor the C++ thread-wrapper, remove JoinHandle 2010-01-24 14:05:32 +01:00
f6cf3195cf * MObjectRef_test pass *
This is the integration of some months of work
2010-01-23 15:50:46 +01:00
Christian Thaeter
f17249713c WIP: subsystem runner test, still broken
using new thread synchronization

Disabled further tests, making one after another working.

Some notes:
 * currently running this leads to different outcomes on differnt runs,
   there are some races/unsyncronized things left, to be investigated.
 * I suggest to make Subsystems joinable, this prolly needs some work in
   the error handling department (thread-wrapper.hpp too)
 * using nonrecursive/waitable lock, recursive locks are have some bad
   taste unless absolutely necessary
 * after all a timed lock with polling is not the right approach to check
   for subsystem shutdowns, I opted against thread cancelation because of
   its programming overhead and complexity. We may refine this and allow
   synchronous cancellation (with an approbiate thread flag) in some cases.
2010-01-23 06:57:15 +01:00
Christian Thaeter
8607a4006a update the thread-wrapper to use the new threading API
This removes the explicit Sync things from the thread wraper since
the functionality is almost exactly provided by the backend.

Thread encapsulates a lumiera thread handle now, but this is strictly
optional and might be dropped on the floor (using a temporary as thread).

Thread has a sync() function which allows user controlled syncronous
startup:

 Thread("foo", myoperation).sync();

will startup myoperation and only return from the ctor after myoperation
called a matching lumiera_thread_sync().

The related tests need to initialize/destroy the threadpool accordingly
2010-01-23 06:57:14 +01:00
Christian Thaeter
cd39533899 the thread-wrapper tests need to init/destroy the threadpool 2010-01-19 18:46:32 +01:00
Christian Thaeter
b8336879f7 autoconf/automake cleanup
* refactor configure.ac to have distinct sections to configure each
   subsystem.
 * Dedicated LUMIERA_<subsys>_CFLAGS|_LIBS vars
 * Fix Makefile.am's to use them, remove unnecessary dependencies

Stray dependencies to be refacored:
 * tests/Makefile.am has dependencies on proc and backend
  - should be moved to tests/library/Makefile.am etc anyways
 * tests/lib/Makefile.am has dependency on GUI left


 * src/tool/Makefile.am links GUI stuff generally, thats ok

 * one threading test is broken, we don't care, merging new threadpool in
   next.
2010-01-17 15:48:30 +01:00
Christian Thaeter
63346c7dff Fix remaining test, forgot to link tests in 2010-01-13 10:25:33 +01:00
5cc3af3009 document the changed/new behaviour by unit test 2010-01-07 04:40:10 +01:00
665bd19f8a use this to get the distinct keys of a multimap 2010-01-06 06:53:29 +01:00
ff2113e61f implement an duplicate-value filtering iterator 2010-01-06 06:19:30 +01:00
2ad85dbb07 bugfix and test coverage 2010-01-06 04:14:16 +01:00
030a7d3813 basic IterSource implementation passes unit test (#490) 2010-01-05 05:21:13 +01:00
16962ae714 IterSource implementation draft 2010-01-05 04:10:23 +01:00
ea5668c5e3 WIP define expected usage of IterSouce 2010-01-05 02:53:20 +01:00
330eb2c243 extended for-each looping helpers. Closes #479 2010-01-04 14:48:00 +01:00
bf48ebc272 add special for-each handling for Lumiera Forward Iterator 2010-01-04 14:23:15 +01:00
d2f24504bd verify/fix the test 2010-01-04 13:34:51 +01:00
cd3a77649e use the (new) iterable classification to mask for_each overloads 2010-01-04 11:19:01 +01:00
64cedb6345 implemented compile-time detection of STL or Lumiera iterator
closes #482
2010-01-03 05:43:33 +01:00
ce6767b71f Testcase to verify the iterable type detection 2010-01-03 00:02:53 +01:00
e27d03c501 simple duck detecor components pass unit test 2010-01-02 09:07:10 +01:00
8777aa585a duck detector (lib helpers): initial implementation draft 2010-01-02 08:09:40 +01:00
e94927d5a3 standard case (using STL container) solved, incl. binding arguments and member functions 2009-12-31 03:25:25 +01:00
484213e42d Implementation draft 2009-12-29 05:34:32 +01:00
2b46574da3 move the for_each helpers into a separate header
(because util.hpp is used pervasively, and I don't want
<tr1/functional> in such a widely used header...
2009-12-29 04:39:27 +01:00
0dca7cbb4d not-yet-implemented.... 2009-12-29 04:30:11 +01:00
c8c359d648 specify expected behaviour of the for_each helpers 2009-12-29 03:42:33 +01:00
0a085acf74 add coverage for the simple standard case
(function returing a value)
2009-12-25 05:24:49 +01:00
534ae16605 implemented this FunctionResult template, needed for Ticket #175 2009-12-23 04:46:09 +01:00
4cb32047ae WIP: define behaviour of a result remembering function... 2009-12-23 01:36:11 +01:00
97faf3dcb8 ItemWrapper unit test pass. Closes #476 2009-12-21 07:52:58 +01:00
e5ab9d73eb add specialisation to deal with wrapping a reference... 2009-12-21 06:19:56 +01:00
3db676fa32 base implementation fo the ItemWrapper 2009-12-21 05:44:29 +01:00
83eb6976cd draft an universal val/ref wrapper, needed by TransformIter.
Seemingly I've hit a nasty problem here, because PlacementIndex
should return an Placement&, but this is being fetched
after-the fact from within the iterator.
2009-12-20 04:33:24 +01:00
d0c905b5c9 add an transforming iterator to the itertools 2009-11-13 03:26:20 +01:00
043d4f42fa working example implementation of the access mechanism to session internal APIs 2009-11-09 02:08:37 +01:00
1c72cbb599 Iterator tools: (1) a filtering iterator 2009-11-02 06:06:43 +01:00
2620c38ed9 documentation, close some tickets... 2009-11-01 02:02:21 +01:00
f35b422316 SubID: add (preliminary) hash impl; unit test pass 2009-10-30 06:50:26 +01:00
df562a186f oops... fix a bug in Literal's hash function 2009-10-30 05:15:26 +01:00
006392f6ea yet another random test helper 2009-10-30 03:53:51 +01:00
ceb4d4b5ea reworked MultiFact passes unit test. Closes Ticket #376 2009-10-30 00:32:26 +01:00
1dccd37c70 re-order MultiFact implementation to get it to compile 2009-10-29 22:00:17 +01:00
3145064a21 change IterAdapter iteration control API to use free functions 2009-10-29 04:31:16 +01:00
0cef067c11 WIP adapt unit test and the argument-accepting MultiFact specialisation 2009-10-28 04:45:17 +01:00
2530e8c1a1 WIP try to create an extension point to MultiFact, allowing to accept argument(s)
sketch of an idea how to add an extension possibility
without messing up the basic MultiFact template
2009-10-27 05:13:38 +01:00
6dc09e66dc WIP: test-driven brainstorming: how to pass additional factory arguments? (Ticket #377) 2009-10-26 01:42:35 +01:00
ec4b2eef00 WIP: test-driven brainstorming: how to build the query dispatcher table? 2009-10-26 01:39:25 +01:00
5d9671cb2c WIP place a ref-count into the result iterator 2009-10-25 16:18:53 +01:00
fea85acd0e equality comparisons on function erasure objects covered
...well, as good as possible, as boost refuses to implement this feature
2009-10-11 05:57:43 +02:00
231278bafe implemented comparison on function erasure, pending test 2009-10-11 05:57:43 +02:00
5068016805 WIP draft how the equality comparison on a function erasure could work 2009-10-11 05:57:43 +02:00
abd23ae399 TypedAllocationManager (frontend) now in lib:: -- unit test pass 2009-10-11 05:57:43 +02:00
d7ef67e821 reduce the stress load on TypedCounter_test, to avoid testsuite out of memory 2009-10-11 05:57:42 +02:00
7bac890790 Test suite runner: pass exit code = 5 when having caught an exception 2009-10-11 05:57:42 +02:00
c3d767b444 try out a recursive approach for the extensible ID
more of a general feasability study... to be continued later
2009-10-11 05:57:42 +02:00
455ee34344 start brainstorming on #279 (extensible ID) 2009-10-11 05:57:42 +02:00
7e4a984ed4 Finish MultiFact for now; use it to set up a table of HandlingPatterns 2009-10-11 05:57:41 +02:00
b7204e05ed removed all the magic and made it simply instance based 2009-10-11 05:57:41 +02:00
bc6f8eebda basically working draft; convoluted and with a lot of static magic 2009-10-11 05:57:41 +02:00
5910f21383 first draft impl regarding automatic installation of a singleton facotry into MultiFact 2009-10-11 05:57:41 +02:00
8ee76b1bfd configurable factory? test-driven brainstorming 2009-10-11 05:57:41 +02:00
8c21f21acc namespace cleanup: bring Singleton and Factory into lib:: 2009-10-11 05:57:41 +02:00
337077d617 random seed to improve coverage when run standalone 2009-10-11 05:57:40 +02:00
9376bff71e race fixed, test pass 2009-10-11 05:57:40 +02:00
f6397ef11c implemented TypedCounter and TypedContext.
Test basically pass, but shows an interesting
deadlock from time to time
2009-10-11 05:57:39 +02:00
517fb8b200 multithreaded torture test for the (planned) TypedCounter 2009-10-11 05:57:39 +02:00
83cd7fd830 Extract the type-based counting into a separate facility 2009-10-11 05:57:39 +02:00
c921d927a2 provide API for counting the allocations (unimplemented) 2009-10-11 05:57:39 +02:00
109cc4701c unit test to verify building a hashtable with Symbol keys 2009-10-11 05:57:38 +02:00
18c357eb4a start using Symbol datatype instead of a disguised char* 2009-10-11 05:57:38 +02:00
4517766517 integrating branches
Merge commit '7f09f57cbde4932269c390da70c42a622cd1275f'
2009-10-11 05:50:27 +02:00
ad6d5cc7ef improve and steamline the subsystem testcases 2009-09-29 02:39:48 +02:00
3b1e2f00a8 rewrite simulated "subsystem". Hopefully closes Ticket #253
- clarify the meaning of run(true), run(fail), run(throw)
- do a real handshake between start() and the subsystem thread
- avoid accessing the SubsystenRunner after signalling termination
2009-09-29 02:38:07 +02:00