minix/test/ds
Cristiano Giuffrida c5b309ff07 Merge of Wu's GSOC 09 branch (src.20090525.r4372.wu)
Main changes:
- COW optimization for safecopy.
- safemap, a grant-based interface for sharing memory regions between processes.
- Integration with safemap and complete rework of DS, supporting new data types
  natively (labels, memory ranges, memory mapped ranges).
- For further information:
  http://wiki.minix3.org/en/SummerOfCode2009/MemoryGrants

Additional changes not included in the original Wu's branch:
- Fixed unhandled case in VM when using COW optimization for safecopy in case
  of a block that has already been shared as SMAP.
- Better interface and naming scheme for sys_saferevmap and ds_retrieve_map
  calls.
- Better input checking in syslib: check for page alignment when creating
  memory mapping grants.
- DS notifies subscribers when an entry is deleted.
- Documented the behavior of indirect grants in case of memory mapping.
- Test suite in /usr/src/test/safeperf|safecopy|safemap|ds/* reworked
  and extended.
- Minor fixes and general cleanup.
- TO-DO: Grant ids should be generated and managed the way endpoints are to make
sure grant slots are never misreused.
2010-01-14 15:24:16 +00:00
..
down Merge of Wu's GSOC 09 branch (src.20090525.r4372.wu) 2010-01-14 15:24:16 +00:00
dstest.c Merge of Wu's GSOC 09 branch (src.20090525.r4372.wu) 2010-01-14 15:24:16 +00:00
inc.h Merge of Wu's GSOC 09 branch (src.20090525.r4372.wu) 2010-01-14 15:24:16 +00:00
Makefile Merge of Wu's GSOC 09 branch (src.20090525.r4372.wu) 2010-01-14 15:24:16 +00:00
README Merge of Wu's GSOC 09 branch (src.20090525.r4372.wu) 2010-01-14 15:24:16 +00:00
run Merge of Wu's GSOC 09 branch (src.20090525.r4372.wu) 2010-01-14 15:24:16 +00:00
subs.c Merge of Wu's GSOC 09 branch (src.20090525.r4372.wu) 2010-01-14 15:24:16 +00:00
system.conf Merge of Wu's GSOC 09 branch (src.20090525.r4372.wu) 2010-01-14 15:24:16 +00:00

Test Program for DataServer

How to run
==========

  1. Type `make run` to prepare and run test.
  2. When done testing, type `make clean` to clean up.

How the test works
==================

`dstest` tests the new DS API (excluding ds_subscribe() and ds_check()).
test_u32, test_str, test_mem, test_label, and test_map test U32, STR, MEM, LABEL
and MAP type respectively.

Invalid invokation is tested as well. Erroneous conditions are tested only once.
For example, publishing an entry with same label name, but without 
DSF_OVERWRITE set, is tested in test_u32 and nowhere else again.
Type-specific features are always tested.

`subs` tests ds_subscribe() and ds_check(). The server subscribes
to a U32 type. When `dstest` runs, `subs` catches all the updates.