Andrew Bettison
9d8707a0ad
Fix broken 'dnaprotocol' tests
...
Explicitly create identities in 'dnaprotocol' fixtures because
start_servald_instances() no longer does it.
The create_single_identity() function was not setting NAMEA, NAMEB, etc. when
they contained a space, because of shell misquoting.
2012-09-17 15:30:05 +09:30
Andrew Bettison
87133cb2de
Improve testdefs: foreach_instance() function
...
The 'rhizomeprotocol' tests now use create_single_identity() in fixtures (which
tests the 'keyring list' command).
Use foreach_instance() function in various places, and replace functions that
used to loop over instances with functions that work on the current instance.
2012-09-14 16:09:28 +09:30
Andrew Bettison
e994626429
Refactor test definitions
...
Move create_rhizome_identities() from testdefs_rhizome.sh to
create_identities() in testdefs.sh
Rename create_identity() in testdefs.sh to create_single_identity(), uses
create_identities() to do its work.
2012-09-14 15:04:05 +09:30
Andrew Bettison
1f4688db99
#16 Fix 'rhizomeops' tests that fail on Solaris
2012-09-13 14:08:52 +09:30
Daniel O'Connor
f8d5b066c0
Create #! line correctly (no need to escape !).
...
Many more tests pass now.
2012-09-07 15:42:20 +09:30
Daniel O'Connor
7a06f55078
SHELL is not set by the shell, use BASH which is set by bash.
2012-09-06 17:19:51 +09:30
Daniel O'Connor
bc6681f4d7
Use $SHELL instead of hardcoding /bin/bash in the dnahelper.
2012-09-06 16:37:41 +09:30
gardners
5aa4c8bb82
added rhizome import via http post test. #9
2012-09-06 16:29:39 +09:30
Andrew Bettison
420add0f4b
Merge branch 'master' into rhizomedirect
2012-08-30 09:38:19 +09:30
Andrew Bettison
9149c80297
Improve test framework: assert '!' command...
...
The assert command now supports leading '!' args in its command, each negating
the sense of the following command.
2012-08-30 09:33:15 +09:30
Andrew Bettison
b3f9e437b3
Issue #9 , add test case for local HTTP add
2012-08-27 17:57:41 +09:30
Andrew Bettison
f93e32b4bc
Add 'rhizomeprotocol' tests for push, pull, sync
...
See issue #9 .
These commands are not yet implemented, so of course the new
tests fail.
2012-08-27 16:29:46 +09:30
Andrew Bettison
836a6d9b6a
Issue #5 , fix one failing test, two to go
...
On Max OS X, /bin/sh does not support echo -n option, but /bin/bash does
2012-08-24 18:40:30 +09:30
Andrew Bettison
eec8fb6e95
Improve SAS resolution debug messages
2012-08-14 14:06:59 +09:30
Andrew Bettison
ec4384ae7d
Fix failing 'dnahelper' test case
2012-08-09 12:21:40 +09:30
Andrew Bettison
b7fa83624d
Split up dnaprotocol tests for speed
2012-08-06 16:45:07 +09:30
Andrew Bettison
0022990e72
Add new dnaprotocol test
...
Dnahelpers on many nodes resolve the same DIDs
Currently fails, suspicious error from overlay_mdp_sanitytest_sourceaddr()
2012-08-02 17:18:04 +09:30
Andrew Bettison
29bf23d7ac
Add dnahelper test: dna.helper.argv.1 config option
2012-08-02 17:11:36 +09:30
Andrew Bettison
32704bf0e9
Improve 'dnaprotocol' test script
...
Replace hard-coded identity names and DIDs with shell variables
2012-08-02 15:46:53 +09:30
Andrew Bettison
cd168ac368
Improve dnaprotocol tests: enable logging in commands
2012-07-31 17:47:59 +09:30
Andrew Bettison
bb97a80452
Minor improvements to 'dnaproctocol' tests
2012-07-27 18:04:46 +09:30
Andrew Bettison
e9abed6efb
Remove redundant logging from 'dnaprotocol' tests
2012-07-25 18:04:45 +09:30
Andrew Bettison
04b95d2590
Merge branch 'andrew' into 'master'
2012-07-25 18:04:16 +09:30
Andrew Bettison
f2ddc00797
Fix SEGV bug in new overlay abbreviation code
2012-07-25 17:45:57 +09:30
Andrew Bettison
d8fc9bd3c2
Fix DEBUG_OVERLAYEBBREVIATIONS from fprintf(stderr) to DEBUGF()
2012-07-25 17:43:44 +09:30
Andrew Bettison
c545061b50
Add server.respawn_on_signal config option
2012-07-25 17:02:57 +09:30
Andrew Bettison
54da59bc56
Fix DNA helper so all tests pass
...
Added a couple more 'dnahelper' tests for timeout conditions
and spurious output
2012-07-24 11:29:07 +09:30
Andrew Bettison
f472ac9a8d
Lots of 'dnahelper' tests, all pass but one
...
Test fails because DNA helper logic does not yet impose a timeout on receiving
the "DONE" ACK after a request.
2012-07-23 18:29:57 +09:30
Andrew Bettison
30567c1d34
Start writing systematic 'dnahelper' tests
2012-07-23 12:23:17 +09:30
Andrew Bettison
0e5c5e0e98
More work on dnahelper, almost done
...
Servald starts DNA helper, receives startup ACK, sends requests, receives
responses, handles malformed helper responses, echoes dnahelper stderr lines to
log, sends MDP reply packet, waits for dead helper process, all asynchronously.
Shuts down helper process during servald shutdown.
Remaining issues:
- Does not impose a timeout on helper responses.
- Only the first URI is reported by the "dna lookup" command.
2012-07-20 18:17:43 +09:30
Andrew Bettison
3b44bb6e58
More progress on dnahelper
2012-07-19 17:59:45 +09:30
Jeremy Lakeman
be857316dc
Move reachability test from starting instances to dna protocol tests
2012-07-18 19:35:47 +09:30
Andrew Bettison
5aac5a3854
Unfinished dnahelper implementation
2012-07-18 19:16:30 +09:30
Andrew Bettison
c31d360b7a
Improve 'rhizomeprotocol' tests
...
New test case for big payload (1 MB + 2 bytes)
Check that received payloads are identical to sent ones
Refactored test code
2012-07-17 14:09:35 +09:30
Andrew Bettison
9d69a3c2bd
Add new 'rhizomeprotocol' test case
...
Replacing a bundle with an empty payload, "unsharing" in UI terms
2012-07-16 18:40:30 +09:30
Andrew Bettison
61bfb7bbbc
Improve 'rhizomeops' test for empty payload
2012-07-16 18:40:30 +09:30
Andrew Bettison
41f3228300
Refactor rhizome HTTP request parsing
...
Replace DEBUG_RHIZOMESYNC with DEBUG_RHIZOME_TX
2012-07-13 11:06:10 +09:30
Andrew Bettison
49ee4d13f0
Re-write manifest parsing, improve rhizome_fetch.c logging
...
Rhizome manifest parser now parses and validates all known fields, informs
about unsupported fields, and unpacks fields into relevant struct manifest
elements where appropriate. Is also stricter about whitespace.
Rhizome fetch code now logs debug messages if DEBUG_RHIZOME_RX bit is on.
2012-07-12 16:39:01 +09:30
Andrew Bettison
d111f763c7
Fix bugs revealed by 'rhizomeprotocol' test
...
Was not transmitting actual HTTP server port in rhizome announcements, was
always transmitting port 4110.
When trying for a free HTTP server port, sometimes bind() succeeds but listen()
fails with EADDRINUSE, so new logic to deal with that.
2012-07-12 12:10:59 +09:30
Andrew Bettison
e69abc3198
Add 'rhizomeprotocol' multi-transfer test
2012-07-11 17:42:30 +09:30
Andrew Bettison
bdd0bb357f
Improve logging config options
...
Rename config option "logfile" to "log.file"
Add "log.show_pid" boolean
Add "log.show_time" boolean
2012-07-11 17:09:50 +09:30
Andrew Bettison
ff2c98afb3
Add "rhizome.fetch_interval_ms" config option
2012-07-11 16:51:30 +09:30
Andrew Bettison
218e7883ce
Improve test scripts: use new 'wait_until' primitive
2012-07-11 16:51:29 +09:30
Andrew Bettison
38a5717789
Fix 'rhizomeprotocol' test to always PASS
2012-07-11 14:51:25 +09:30
Andrew Bettison
6b1becd328
Fix bug in 'rhizomeprotocol' test
...
Now it passes about 30% of the time!
2012-07-11 14:22:55 +09:30
Andrew Bettison
69ff860b4f
Add rhizome sync logging to 'rhizomeprotocol' test
2012-07-10 20:00:20 +09:30
Andrew Bettison
aa29e1ad8c
First cut of 'rhizomeprotocol' tests
...
Currently fails because it looks like HTTP request is failing
2012-07-06 14:39:25 +09:30
Andrew Bettison
572fa591e2
Refactor test utilities from 'rhizomeops' into testdefs_rhizome.sh
2012-07-06 13:32:21 +09:30
Andrew Bettison
438cdd8b47
Rename 'rhizome' test to 'rhizomeops'
2012-07-06 13:20:37 +09:30
Andrew Bettison
a80da50636
Finish rewriting configuration and logging code
...
Fix endless recursion if error or debug logged while reading config file
Fix 'config del' logic
Log messages made before log file can be opened are buffered and written
once the file is open
Do not log to file in ANDROID version, just to Android's log system
2012-07-05 14:59:50 +09:30
Andrew Bettison
8cdae125e7
Fix 'dnaprotocol' tests broken by earlier refactor
2012-07-05 14:57:28 +09:30
Andrew Bettison
0cece65417
Refactor multi-instance server start code into test defs
2012-07-04 14:12:36 +09:30
Andrew Bettison
68ef34c119
Add 'id allpeers' command to facilitate testing
2012-07-04 12:06:15 +09:30
Andrew Bettison
a90c0156ed
New DEBUG_MDPREQUESTS debug flag
...
Use it to instrument the MDP_GETADDRS request, to investigate cause of
test 'dnaprotocol' fixture failure
2012-07-04 10:32:38 +09:30
Andrew Bettison
30d51f0314
Tighten up tests and code relating to peer discovery
2012-07-03 17:38:54 +09:30
gardners
5738e6d799
removed inherited tests from new dnahelper test suite.
...
Need to add real tests to this.
2012-07-03 16:47:40 +09:30
gardners
02ca21a601
CHANGED DNA REPLY PACKET FORMAT BREAKING BACKWARDS COMPATIBILITY
...
... as part of working on work on DNA helper callout facility.
(DNA replies now contain a token that can be used to match them
against DNA requests as a happy side-effect).
2012-07-03 16:45:03 +09:30
Andrew Bettison
8020ea3b74
Merge branch 'eventscheduler' into master
...
Conflicts:
commandline.c
monitor.c
overlay.c
overlay_interface.c
overlay_packetformats.c
rhizome_fetch.c
rhizome_http.c
rhizome_packetformats.c
serval.h
server.c
testdefs.sh
testframework.sh
tests/dnaprotocol
tests/server
2012-07-03 10:26:22 +09:30
Andrew Bettison
1193763abd
Fix server test fixtures to isolate concurrent running tests
2012-07-02 16:08:39 +09:30
Andrew Bettison
53e159b8f1
Redice dnaproctcol test sleep to 0.5 seconds
2012-07-02 16:08:15 +09:30
Andrew Bettison
5764a09b43
Rename dnaprotocol tests to assist filtering
2012-07-02 14:44:11 +09:30
Andrew Bettison
f76ef9a7e6
Improve test framework: log timestamps
2012-07-02 12:26:58 +09:30
Andrew Bettison
fc8df7d5d4
Config options for tick duration
2012-07-02 12:26:01 +09:30
Andrew Bettison
cf8baca824
Fix dna protocol tests for concurrent execution
2012-07-02 11:00:06 +09:30
Andrew Bettison
7307c991a2
Add mdp.selfannounce.ticks_per_full_address config option
2012-06-28 18:20:38 +09:30
Andrew Bettison
d7828f9409
Improve test defs: stop_all_servald_servers
...
Only attempts an orderly stop if a pidfile is present
2012-06-26 16:44:34 +09:30
Andrew Bettison
f5a99238cb
Add test case for server start while already running
2012-06-26 16:09:22 +09:30
Andrew Bettison
4afdbe1b5e
Add server start/stop tests
2012-06-26 15:52:37 +09:30
Andrew Bettison
5b56e2b131
Add server start/stop tests
2012-06-26 15:46:10 +09:30
gardners
b40a468276
Merge branch 'eventscheduler'
...
Conflicts:
monitor.c
serval.h
2012-06-25 16:50:23 +09:30
Andrew Bettison
c041048958
Fix servald server test assertion messages
2012-06-22 17:32:42 +09:30
gardners
3b6a004cc9
new event scheduler almost working, but after a while can stop
...
calling overlay_check_ticks alarm for some reason, which causes
queues to congest and bad things to generally happen.
2012-06-22 17:30:21 +09:30
Andrew Bettison
de4a9a1318
Improve server tests: server log file assertions
2012-06-22 17:18:14 +09:30
Andrew Bettison
aedb31e451
Improve test definitions
...
Better instance handling primitives
Fix get_servald_pids() to work on Linux and Mac (allegedly!)
2012-06-22 15:56:28 +09:30
Andrew Bettison
3a6ea4ad75
Move test fixture code into setup_...() functions
2012-06-22 13:19:28 +09:30
Andrew Bettison
274e5c007c
Merge branch 'master' into andrew
...
Conflicts:
log.c
2012-06-22 11:18:48 +09:30
gardners
2d718a297f
reversed changes that broke DNA tests. Improved dnaprotocol
...
test script slightly.
2012-06-21 17:02:36 +09:30
gardners
8977142a30
fixed "timeout from MDP server" errors in node info output.
...
added extra tests for node info.
2012-06-21 16:36:38 +09:30
gardners
a4d575d87a
added test to make sure that DNA lookups by number work as advertised.
2012-06-21 16:36:38 +09:30
gardners
0254ca0ab8
made dnaprotocol test more rigorous to ensure it really returns
...
results from each SID/servald instance.
Fixed bug in "keyring list" that was returning keyrings in
lower case instead of normalised form using overlay_render_sid()
2012-06-21 16:36:38 +09:30
gardners
fa1cef7f3b
fixed bugs in dnaprotocol test script to work.
2012-06-21 16:36:38 +09:30
gardners
5e338f6285
make tests faster to run.
2012-06-21 16:36:37 +09:30
gardners
48a1d7e20f
MDP socket name can now be changed by config option mdp.socket.
...
DNA tests now passing again.
2012-06-21 16:36:37 +09:30
gardners
01712ab67e
monitor.socket config option added to allow multiple servald
...
instances on the same machine without conflicting abstract namespace
unix domain sockets for monitor interface.
2012-06-21 16:36:37 +09:30
gardners
22ebdbc1ae
work on getting multiple dna instances running in test framework.
2012-06-21 16:36:37 +09:30
gardners
fefe7d2e91
fixed dna query bugs and split wildcard query test into star and
...
empty string versions.
2012-06-21 16:36:37 +09:30
gardners
2a6cdc0389
got wildcard search for self test functioning.
2012-06-21 16:36:37 +09:30
gardners
2aa06ea84b
added new test for dnaprotocol
2012-06-21 16:36:37 +09:30
Andrew Bettison
0997909053
Fix import bundle test and bug
...
Add lots of debug to track down cause of rhizome list .selfsigned column bug
2012-06-15 18:10:10 +09:30
Andrew Bettison
8fca6b5c5e
Rename "rhizome list" output column headers
...
_inserttime -> .inserttime
_selfsigned -> .selfsigned
2012-06-13 18:11:14 +09:30
Andrew Bettison
eeb8a22495
Fix rhizome list column count field
2012-06-12 18:13:21 +09:30
Andrew Bettison
50ed301ccc
Fix failing tests from addition of rhizome list '_selfsigned' column
2012-06-12 11:48:15 +09:30
Andrew Bettison
7be0d9d00d
Pass author SID parameters in binary, not hex
2012-06-08 18:32:14 +09:30
Andrew Bettison
637ef02f30
Add _selfsigned column to "rhizome list" output
...
Add <pin,pin...> arg1 to "rhizome list" command, so it can open the keyring
Some tests in tests/rhizome fail
2012-06-08 18:25:43 +09:30
Andrew Bettison
7a71a521f8
Pass author SID parameters in binary, not hex
2012-06-08 15:27:15 +09:30
Andrew Bettison
86c7819f97
Remove spurious ERROR messsages
...
Tests assert that stderr contains no ERROR: lines after a successful exit
Rewrote sqlite_exec_int64() to separate error outcomes from legitimate
result values
Changed several WHY() calls to DEBUG()
Improved test framework
2012-06-08 13:13:26 +09:30
Andrew Bettison
b14db5c28b
Improve "rhizome add file" for empty payloads
...
Accept the empty string for a payload pathname to mean a zero-length
payload.
2012-06-05 15:45:53 +09:30
Andrew Bettison
a9ad1b6afc
Add <bsk> optional arg to "rhizome add file"
...
Improve regular expressions for common data types in test scripts
Revert column count field delimiter in "rhizome list" from ":" to "\n"
Add a few more test cases
2012-06-05 13:58:59 +09:30
Andrew Bettison
c857aea237
Improve rhizome test script
...
Escape grep metacharacters when matching manifest names
2012-06-05 11:05:56 +09:30
Andrew Bettison
72640e830a
First server start/stop test
...
On the way to multi-instance test scripts
2012-06-04 18:28:38 +09:30
Andrew Bettison
05721d3725
Remove obsolete tests, rename others
2012-06-04 18:28:38 +09:30
gardners
782e9dca03
updated to handle new 10-field format of output from servald rhizome lists.
...
Passes all 23 tests.
2012-05-27 14:54:56 +02:00
Andrew Bettison
d215d90b40
Refactored some rhizome db SQL code
...
Added sqlite_exec_void() function, so that sqlite_exec_int64() can return
an error if no rows are found instead of 0, which can be misleading.
2012-05-25 19:42:45 +09:30
Andrew Bettison
62ae488c18
Re-order "rhizome list" columns
2012-05-25 18:06:48 +09:30
Andrew Bettison
c0ac693957
Remove old payload when updating a manifest with a new payload
2012-05-25 14:29:55 +09:30
Andrew Bettison
ce0ca8801f
Implement "rhizome list" sender/recipient filtering
...
With tests in tests/dna_rhizome that actually revealed a bug
2012-05-21 14:42:53 +09:30
Andrew Bettison
da98535191
Add tests for rhizome MeshMS manifest operations
2012-05-21 14:42:53 +09:30
Andrew Bettison
4d6c48a68f
Overhaul test scripts: use "servald" instead of "dna"
2012-05-20 13:48:02 +09:30
Andrew Bettison
5e11067c72
Add 'service' column to "rhizome list" output
2012-05-17 17:00:14 +09:30
Andrew Bettison
9a51c76dfb
Insist on 'service' field in all manifests
...
The "rhizome file add" command assumes service=file if no manifest supplied
or the manifest lacks a service field.
The "rhizome extract manifest" command includes the service in its CLI output.
2012-05-17 17:00:14 +09:30
Andrew Bettison
2434d51bee
Remove "rhizome add authored file" command
...
Now "rhizome add file" takes SID and PIN args, and if SID is empty, an
unauthored bundle (no BK field) is created
Updated dna_rhizome test cases
2012-05-17 12:01:25 +09:30
Andrew Bettison
ebbae38cdd
Update dna_rhizome test script
...
Manifests no longer carry 'first_byte' and 'last_byte' fields
2012-05-16 16:05:29 +09:30
Andrew Bettison
cecb09f46a
Add test for debug.all config option
2012-05-15 09:49:40 +09:30
Andrew Bettison
d11258cefc
Overhaul debug flags
...
Config debug flags are now represented as individual items, eg:
servald config set debug.verbose yes
servald config set debug.rhizome yes
instead of aggregated, eg:
servald config set debug verbose,rhizome <-- no longer works
Added a debug flag "debug.all" that can be set and cleared, over which
individual flag sets/clears take priority.
Slimmed down dna.c by moving some globals and functions to the files where they
are used.
Default command line (help message) is now the new style, not the deprecated
style.
2012-05-14 18:37:32 +09:30
Andrew Bettison
4ae3c95992
"rhizome list" command filter by datavalid
2012-05-07 10:25:30 +09:30
Andrew Bettison
97884ba069
Fix bug in output from "rhizome add file"
...
When a duplicate is detected, the 'manifestid' field must contain the public
key of the existing manifest.
2012-05-04 15:59:58 +09:30
Andrew Bettison
f31c326871
CLI output from "rhizome add file", with tests
2012-05-04 15:31:03 +09:30
Andrew Bettison
e230bbc40b
Improve output from "rhizome extract manifest"
2012-05-03 12:17:49 +09:30
Andrew Bettison
7ba15ccdd7
Add "rhizome extract file" command with tests
2012-05-02 17:57:35 +09:30
Andrew Bettison
6e959fd34c
More tests for "rhizome extract manifest"
...
Proper handling of unknown and invalid manifest IDs
2012-05-02 16:24:27 +09:30
Andrew Bettison
572f8a3a93
Improve test for "rhizome extract manifest"
2012-05-02 16:08:27 +09:30
Andrew Bettison
146eb7cdfd
Add "rhizome extract manifest" command
2012-05-02 16:03:09 +09:30
Andrew Bettison
7e7ab30808
Refactor JNI command-line interface
...
Does not depend on ServalDResult class - appends output fields to a supplied
list instead, and returns the integer status
Does not depend on ServalDReentranceError class - uses
java.lang.IllegalStateException instead
2012-04-30 17:45:24 +09:30
Andrew Bettison
72640ade4c
First output field of "rhizome list" is column count
2012-04-26 15:54:40 +09:30
Andrew Bettison
219e863999
Add another JNI command-line interface test
2012-04-25 09:06:12 +09:30
Andrew Bettison
f9d8536d7d
JNI-ize the output of "dna rhizome list"
2012-04-24 17:50:27 +09:30
Andrew Bettison
54b1642bf1
Add test for servald non-JNI output delimiter
2012-04-24 17:15:50 +09:30
Andrew Bettison
a496919e8a
First real servald JNI command-line test works!
2012-04-24 17:07:20 +09:30
Andrew Bettison
1494172da6
Trival test of dna JNI command line entry point
2012-04-23 18:25:26 +09:30
Andrew Bettison
d53915d354
Fix test framework for Mac OS X 10.7 (bash-3.2.48)
2012-04-17 16:54:39 +09:30
Andrew Bettison
866ddea189
Get all rhizome add file test cases passing
...
- new test cases to cover new payload with different versions
- exit status of 2 when duplicate is detected
- tighten up other test cases
- fix bug in sqlite_exec_int64()
2012-04-16 11:46:58 +09:30
Andrew Bettison
edde2ac8c9
Add new rhizome test case
...
- updating the payload of a bundle should fail if version number is not
increased
2012-04-13 18:03:19 +09:30
Andrew Bettison
de88d3db21
Make "dna rhizome add" work for more test cases
...
- adding a bundle using an existing manifest with an incorrect payload should
fail with an error
- adding a bundle using an existing manifest to update the payload to a new
version should succeed
- improve format of "dna rhizome list" output to one bundle per line
2012-04-13 18:03:19 +09:30
Andrew Bettison
af00de165a
Enable rhizome debug messages in rhizome tests
2012-04-12 18:33:43 +09:30
Andrew Bettison
42b117f735
Add dna config operation tests
2012-04-12 18:33:43 +09:30
Andrew Bettison
c4e3249839
Improve test framework
...
- new execute() option: --exit-status=N
equivalent to assertExitStatus --stderr '==' N
- new executeOk() function, shortcut for execute --exit-status=0
2012-04-12 18:33:43 +09:30
Andrew Bettison
fab1df61e1
Improve test framework
...
- add assertStdoutLineCount/assertStderrLineCount functions
- remove spurious "# assert" log output lines
2012-04-12 18:33:43 +09:30
Andrew Bettison
51b5cf8b54
Fix bugs in assertGrep and a rhizome test case
2012-04-10 18:13:05 +09:30
Andrew Bettison
6988fb7dd9
Add four dna rhizome test cases
2012-04-10 18:13:05 +09:30
Andrew Bettison
ce5dc011b8
Split dna bit error tests into separate script
...
- Put common utility functions into testdefs.sh
- Add abspath() and realpath() functions to test framework
- Test framework now executes all tests with working directory in a temporary
directory, to avoid pollution of caller's working directory
- Improve test log verbosity
- Name test log files by test script name
2012-04-10 12:41:15 +09:30
Andrew Bettison
f5acb301d8
Transcribe from ./testdna to new test framework
...
- testframework.sh is now a very full-featured, creates test.log
- some tests fail, looks like bugs in dna
2012-04-05 19:47:57 +09:30
Andrew Bettison
1e2779a6e3
First cut at a dna testing framework
2012-04-03 19:18:57 +09:30