Revision cefd4a4a
b/Makefile.am | ||
---|---|---|
413 | 413 |
HS_ALL_PROGS = \ |
414 | 414 |
$(HS_PROGS) \ |
415 | 415 |
htest/hpc-htools \ |
416 |
htest/hpc-mon-collector \ |
|
416 | 417 |
htest/test \ |
417 | 418 |
htools/hconfd \ |
418 | 419 |
htools/rpc-test |
... | ... | |
678 | 679 |
# we compile the hpc-htools binary with the program coverage |
679 | 680 |
htest/hpc-htools: HEXTRA_INT=-fhpc |
680 | 681 |
|
682 |
# we compile the hpc-mon-collector binary with the program coverage |
|
683 |
htest/hpc-mon-collector: HEXTRA_INT=-fhpc |
|
684 |
|
|
681 | 685 |
# test dependency |
682 |
htest/offline-tests.sh: htest/hpc-htools |
|
686 |
htest/offline-tests.sh: htest/hpc-htools htest/hpc-mon-collector
|
|
683 | 687 |
|
684 | 688 |
# rules for building profiling-enabled versions of the haskell |
685 | 689 |
# programs: hs-prof does the full two-step build, whereas |
... | ... | |
872 | 876 |
htest/shelltests/htools-rapi.test \ |
873 | 877 |
htest/shelltests/htools-single-group.test \ |
874 | 878 |
htest/shelltests/htools-text-backend.test \ |
879 |
htest/shelltests/htools-mon-collector.test \ |
|
875 | 880 |
test/data/bdev-drbd-8.0.txt \ |
876 | 881 |
test/data/bdev-drbd-8.3.txt \ |
877 | 882 |
test/data/bdev-drbd-disk.txt \ |
... | ... | |
1027 | 1032 |
if WANT_HTOOLSTESTS |
1028 | 1033 |
nodist_TESTS += $(haskell_tests) |
1029 | 1034 |
dist_TESTS += htest/offline-test.sh |
1030 |
check_SCRIPTS += htest/hpc-htools $(HS_BUILT_TEST_HELPERS) |
|
1035 |
check_SCRIPTS += \ |
|
1036 |
htest/hpc-htools \ |
|
1037 |
htest/hpc-mon-collector \ |
|
1038 |
$(HS_BUILT_TEST_HELPERS) |
|
1031 | 1039 |
endif |
1032 | 1040 |
|
1033 | 1041 |
TESTS = $(dist_TESTS) $(nodist_TESTS) |
... | ... | |
1509 | 1517 |
test -z "$$error" |
1510 | 1518 |
|
1511 | 1519 |
.PHONY: hs-check |
1512 |
hs-check: htest/test htest/hpc-htools $(HS_BUILT_TEST_HELPERS) |
|
1520 |
hs-check: htest/test htest/hpc-htools htest/hpc-mon-collector $(HS_BUILT_TEST_HELPERS)
|
|
1513 | 1521 |
@rm -f test.tix |
1514 | 1522 |
./htest/test |
1515 | 1523 |
HBINARY="./htest/hpc-htools" ./htest/offline-test.sh |
... | ... | |
1726 | 1734 |
$(python_tests) |
1727 | 1735 |
|
1728 | 1736 |
.PHONY: hs-coverage |
1729 |
hs-coverage: $(haskell_tests) htest/hpc-htools |
|
1737 |
hs-coverage: $(haskell_tests) htest/hpc-htools htest/hpc-mon-collector
|
|
1730 | 1738 |
rm -f *.tix |
1731 | 1739 |
$(MAKE) $(AM_MAKEFLAGS) hs-check |
1732 | 1740 |
@mkdir_p@ $(COVERAGE_HS_DIR) |
1733 | 1741 |
hpc combine --union $(HPCEXCL) \ |
1734 |
test.tix hpc-htools.tix > coverage-htools.tix |
|
1742 |
test.tix hpc-htools.tix hpc-mon-collector.tix > coverage-htools.tix
|
|
1735 | 1743 |
hpc markup --destdir=$(COVERAGE_HS_DIR) coverage-htools.tix |
1736 | 1744 |
hpc report coverage-htools.tix |
1737 | 1745 |
$(LN_S) -f hpc_index.html $(COVERAGE_HS_DIR)/index.html |
b/autotools/run-in-tempdir | ||
---|---|---|
17 | 17 |
ln -T -s $tmpdir/ganeti $tmpdir/lib |
18 | 18 |
|
19 | 19 |
mkdir -p $tmpdir/htools $tmpdir/htest |
20 |
for hfile in htools ganeti-confd; do |
|
20 |
for hfile in htools ganeti-confd mon-collector; do
|
|
21 | 21 |
if [ -e htools/$hfile ]; then |
22 | 22 |
cp -p htools/$hfile $tmpdir/htools/ |
23 | 23 |
fi |
24 | 24 |
done |
25 | 25 |
|
26 | 26 |
for hfile in hpc-htools test offline-test.sh cli-tests-defs.sh \ |
27 |
hbal hscan hspace hinfo hcheck hail; do |
|
27 |
hbal hscan hspace hinfo hcheck hail hpc-mon-collector; do
|
|
28 | 28 |
if [ -e htest/$hfile ]; then |
29 | 29 |
cp -p htest/$hfile $tmpdir/htest/ |
30 | 30 |
fi |
b/htest/hpc-mon-collector.hs | ||
---|---|---|
1 |
../htools/mon-collector.hs |
b/htest/shelltests/htools-mon-collector.test | ||
---|---|---|
1 |
# 1. Test that mon-collector won't run without specifying a personality |
|
2 |
./htest/hpc-mon-collector |
|
3 |
>>>= !0 |
|
4 |
|
|
5 |
# 2. Test that the drbd collector fails parsing /dev/null |
|
6 |
./htest/hpc-mon-collector drbd /dev/null |
|
7 |
>>>2 |
|
8 |
Error: "" |
|
9 |
[] |
|
10 |
Failed reading: versionInfo |
|
11 |
>>>= !0 |
|
12 |
|
|
13 |
# 3. Test that the drbd collector fails parsing /dev/zero, but is not |
|
14 |
# stuck forever printing \NUL chars |
|
15 |
./htest/hpc-mon-collector drbd /dev/zero |
|
16 |
>>>2 |
|
17 |
Error: "\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL\NUL" |
|
18 |
[] |
|
19 |
Failed reading: versionInfo |
|
20 |
>>>= !0 |
b/htools/Ganeti/Block/Drbd/Parser.hs | ||
---|---|---|
31 | 31 |
import qualified Data.Attoparsec.Text as A |
32 | 32 |
import qualified Data.Attoparsec.Combinator as AC |
33 | 33 |
import Data.Attoparsec.Text (Parser) |
34 |
import Data.Maybe |
|
34 | 35 |
import Data.Text (Text, unpack) |
35 | 36 |
|
36 | 37 |
import Ganeti.Block.Drbd.Types |
... | ... | |
68 | 69 |
|
69 | 70 |
-- | The parser for the version information lines. |
70 | 71 |
versionInfoParser :: Parser VersionInfo |
71 |
versionInfoParser = |
|
72 |
VersionInfo |
|
73 |
<$> optional versionP |
|
74 |
<*> optional apiP |
|
75 |
<*> optional protoP |
|
76 |
<*> optional srcVersion |
|
77 |
<*> (fmap unpack <$> optional gh) |
|
78 |
<*> (fmap unpack <$> optional builder) |
|
72 |
versionInfoParser = do |
|
73 |
versionF <- optional versionP |
|
74 |
apiF <- optional apiP |
|
75 |
protoF <- optional protoP |
|
76 |
srcVersionF <- optional srcVersion |
|
77 |
ghF <- fmap unpack <$> optional gh |
|
78 |
builderF <- fmap unpack <$> optional builder |
|
79 |
if isNothing versionF |
|
80 |
&& isNothing apiF |
|
81 |
&& isNothing protoF |
|
82 |
&& isNothing srcVersionF |
|
83 |
&& isNothing ghF |
|
84 |
&& isNothing builderF |
|
85 |
then fail "versionInfo" |
|
86 |
else pure $ VersionInfo versionF apiF protoF srcVersionF ghF builderF |
|
87 |
|
|
79 | 88 |
where versionP = |
80 | 89 |
A.string "version:" |
81 | 90 |
*> skipSpaces |
Also available in: Unified diff