diff options
author | Mike Buland <eichlan@xagasoft.com> | 2008-12-29 21:46:03 +0000 |
---|---|---|
committer | Mike Buland <eichlan@xagasoft.com> | 2008-12-29 21:46:03 +0000 |
commit | 1743bd0eacec94c6f6e3c89e16d0bd6d301017e8 (patch) | |
tree | a4de5c4bf9ebb8b9181daa8ec52c697dc3e1ff63 /src/unit/taf.cpp | |
parent | f461b3c1839e5cfc85685ed1cb828ecaa74d6912 (diff) | |
download | libbu++-1743bd0eacec94c6f6e3c89e16d0bd6d301017e8.tar.gz libbu++-1743bd0eacec94c6f6e3c89e16d0bd6d301017e8.tar.bz2 libbu++-1743bd0eacec94c6f6e3c89e16d0bd6d301017e8.tar.xz libbu++-1743bd0eacec94c6f6e3c89e16d0bd6d301017e8.zip |
Corrected the premature end of stream read corner case in Taf...it was freaking
out and allocating all memory, now it just throws an exception.
Diffstat (limited to 'src/unit/taf.cpp')
-rw-r--r-- | src/unit/taf.cpp | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/src/unit/taf.cpp b/src/unit/taf.cpp index 3bf7cc6..e4b3ccc 100644 --- a/src/unit/taf.cpp +++ b/src/unit/taf.cpp | |||
@@ -23,6 +23,7 @@ public: | |||
23 | addTest( Unit::read1 ); | 23 | addTest( Unit::read1 ); |
24 | addTest( Unit::encode1 ); | 24 | addTest( Unit::encode1 ); |
25 | addTest( Unit::emptyStr1 ); | 25 | addTest( Unit::emptyStr1 ); |
26 | addTest( Unit::incomplete1 ); | ||
26 | } | 27 | } |
27 | 28 | ||
28 | virtual ~Unit() | 29 | virtual ~Unit() |
@@ -108,6 +109,21 @@ public: | |||
108 | unitTest( | 109 | unitTest( |
109 | mb.getString() == "{\"Test Group\":\n \"Lame\"=\"\"\n}\n" ); | 110 | mb.getString() == "{\"Test Group\":\n \"Lame\"=\"\"\n}\n" ); |
110 | } | 111 | } |
112 | |||
113 | void incomplete1() | ||
114 | { | ||
115 | try | ||
116 | { | ||
117 | Bu::MemBuf mb("{Lame: \"Hello=\""); | ||
118 | Bu::TafReader tr( mb ); | ||
119 | delete tr.readGroup(); | ||
120 | unitFailed("Should have thrown an exception, didn't."); | ||
121 | } | ||
122 | catch( Bu::TafException &e ) | ||
123 | { | ||
124 | // Woot | ||
125 | } | ||
126 | } | ||
111 | }; | 127 | }; |
112 | 128 | ||
113 | int main( int argc, char *argv[] ) | 129 | int main( int argc, char *argv[] ) |