summaryrefslogtreecommitdiff
path: root/src/unit
diff options
context:
space:
mode:
Diffstat (limited to 'src/unit')
-rw-r--r--src/unit/substream.unit52
-rw-r--r--src/unit/taf.unit10
2 files changed, 62 insertions, 0 deletions
diff --git a/src/unit/substream.unit b/src/unit/substream.unit
new file mode 100644
index 0000000..ef6c70b
--- /dev/null
+++ b/src/unit/substream.unit
@@ -0,0 +1,52 @@
1// vim: syntax=cpp
2/*
3 * Copyright (C) 2007-2008 Xagasoft, All rights reserved.
4 *
5 * This file is part of the libbu++ library and is released under the
6 * terms of the license contained in the file LICENSE.
7 */
8
9#include "bu/membuf.h"
10#include "bu/substream.h"
11
12{=Init}
13
14{%testRead01}
15{
16 Bu::MemBuf mb("abcdefghijklmnopqrstuvwxyz");
17 mb.seek( 4 );
18 Bu::SubStream ss( mb, 10 );
19 unitTest( ss.readLine() == "efghijklmn" );
20}
21
22{%testRead02}
23{
24 Bu::MemBuf mb("abcdefghijklmnopqrstuvwxyz");
25 mb.seek( 4 );
26 Bu::SubStream ss( mb, 10 );
27 char buf[8];
28 size_t iRead = ss.read( buf, 8 );
29 unitTest( iRead == 8 );
30 unitTest( strncmp( buf, "efghijkl", 8 ) == 0 );
31 unitTest( !ss.isEos() );
32 iRead = ss.read( buf, 8 );
33 unitTest( iRead == 2 );
34 unitTest( strncmp( buf, "mn", 2 ) == 0 );
35 unitTest( ss.isEos() );
36}
37
38{%testRead03}
39{
40 Bu::MemBuf mb("abcdefghijklmnopqrstuvwxyz");
41 mb.seek( 20 );
42 Bu::SubStream ss( mb, 10 );
43 char buf[8];
44 size_t iRead = ss.read( buf, 8 );
45 unitTest( iRead == 6 );
46 unitTest( strncmp( buf, "uvwxyz", 6 ) == 0 );
47 unitTest( ss.isEos() );
48 iRead = ss.read( buf, 8 );
49 unitTest( iRead == 0 );
50 unitTest( ss.isEos() );
51}
52
diff --git a/src/unit/taf.unit b/src/unit/taf.unit
index eeddd53..a9329fe 100644
--- a/src/unit/taf.unit
+++ b/src/unit/taf.unit
@@ -109,3 +109,13 @@
109 // Woot 109 // Woot
110 } 110 }
111} 111}
112
113{%bypath1}
114{
115 Bu::MemBuf mb("{outer: \"Hello=\" {inner: {final: test=hi} } }");
116 Bu::TafReader tr( mb );
117 const Bu::TafGroup *g = tr.readGroup();
118 unitTest( g->getChildByPath("inner/final")->getProperty("test") == "hi" );
119 unitTest( g->getByPath("inner/final/test") == "hi" );
120}
121