Mon, 16 Jan 2012 01:53:45 +0000
Merge with upstream
36
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
1 | require("luaevent.core") |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
2 | local buffer = luaevent.core.buffer |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
3 | |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
4 | require("lunit") |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
5 | |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
6 | lunit.import("all") |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
7 | |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
8 | bufferTests = TestCase("bufferTests") |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
9 | |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
10 | function bufferTests:setup() |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
11 | self.buffer = buffer.new() |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
12 | self.buffer2 = buffer.new() |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
13 | end |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
14 | |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
15 | function bufferTests:teardown() |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
16 | self.buffer:close() |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
17 | self.buffer2:close() |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
18 | end |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
19 | |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
20 | local function testDataEqual(expected, actual, msg) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
21 | msg = msg or '' |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
22 | assert_equal(expected, actual:get_data(), "Buffer not the same: " .. msg) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
23 | assert_equal(#expected, actual:length(), "Buffer length not the same: " .. msg) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
24 | assert_equal(expected, tostring(actual), "Buffer (from tostring) not the same: " .. msg) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
25 | assert_equal(#expected, #actual, "Buffer length (from #) not zero: " .. msg) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
26 | end |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
27 | |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
28 | function bufferTests:test_empty() |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
29 | testDataEqual("", self.buffer, "Buffer not empty") |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
30 | testDataEqual("", self.buffer2, "Buffer2 not empty") |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
31 | end |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
32 | |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
33 | function bufferTests:test_addSimpleString() |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
34 | self.buffer:add("Hello") |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
35 | testDataEqual("Hello", self.buffer) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
36 | self.buffer:add("Hello") |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
37 | testDataEqual("HelloHello", self.buffer) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
38 | end |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
39 | |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
40 | function bufferTests:test_addMultipleStrings() |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
41 | self.buffer:add("Hello", "Hello") |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
42 | testDataEqual("HelloHello", self.buffer) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
43 | end |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
44 | |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
45 | function bufferTests:test_addDigits() |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
46 | self.buffer:add(1,2,3,4) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
47 | testDataEqual("1234", self.buffer) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
48 | self.buffer:add(100) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
49 | testDataEqual("1234100", self.buffer) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
50 | self.buffer:add(1.1) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
51 | testDataEqual("12341001.1", self.buffer) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
52 | end |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
53 | |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
54 | function bufferTests:test_addBuffer() |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
55 | self.buffer:add(self.buffer2) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
56 | testDataEqual("", self.buffer) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
57 | testDataEqual("", self.buffer2) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
58 | self.buffer2:add("Hello") |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
59 | testDataEqual("Hello", self.buffer2) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
60 | self.buffer:add(self.buffer2) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
61 | testDataEqual("Hello", self.buffer) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
62 | testDataEqual("", self.buffer2) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
63 | assert_error("Cannot self-add buffers", function() |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
64 | self.buffer:add(self.buffer) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
65 | end) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
66 | assert_error("Cannot self-add buffers", function() |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
67 | self.buffer2:add(self.buffer2) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
68 | end) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
69 | testDataEqual("Hello", self.buffer, "Failures should not affect data content") |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
70 | testDataEqual("", self.buffer2, "Failures should not affect data content") |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
71 | end |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
72 | |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
73 | function bufferTests:test_addBadValues_fail() |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
74 | assert_error("Should not be able to add no values", function() |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
75 | self.buffer:add() |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
76 | end) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
77 | assert_error("Should not be able to add boolean true", function() |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
78 | self.buffer:add(true) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
79 | end) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
80 | assert_error("Should not be able to add boolean false", function() |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
81 | self.buffer:add(false) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
82 | end) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
83 | assert_error("Should not be able to add functions", function() |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
84 | self.buffer:add(function() end) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
85 | end) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
86 | assert_error("Should not be able to add threads", function() |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
87 | self.buffer:add(coroutine.create(function() end)) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
88 | end) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
89 | assert_error("Should not be able to add non-buffer userdata", function() |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
90 | self.buffer:add(newproxy()) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
91 | end) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
92 | assert_error("Should not be able to add nil values", function() |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
93 | self.buffer:add(nil) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
94 | end) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
95 | assert_error("Multiples including valid values should not affect failure results", function() |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
96 | self.buffer:add("Hello", 1, bufferb, true, false, function() end, newproxy(), nil) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
97 | end) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
98 | testDataEqual("", self.buffer, "Buffer not empty after failing additions") |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
99 | end |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
100 | |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
101 | function bufferTests:test_drain() |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
102 | self.buffer:add("123456789") |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
103 | testDataEqual("123456789", self.buffer) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
104 | assert_error("Cannot call drain w/ no args", function() |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
105 | self.buffer:drain() |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
106 | end) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
107 | self.buffer:drain(1) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
108 | testDataEqual("23456789", self.buffer) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
109 | self.buffer:drain(4) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
110 | testDataEqual("6789", self.buffer) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
111 | assert_pass("Should be able to apply draining beyond actual buffer length", function() |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
112 | self.buffer:drain(5) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
113 | end) |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
114 | testDataEqual("", self.buffer) |
37
b7351b503b4b
event_buffer: drain learned spec notes, get_data learned negative values, many tests written
Thomas Harning Jr <harningt@gmail.com>
parents:
36
diff
changeset
|
115 | self.buffer:add("123456789") |
b7351b503b4b
event_buffer: drain learned spec notes, get_data learned negative values, many tests written
Thomas Harning Jr <harningt@gmail.com>
parents:
36
diff
changeset
|
116 | testDataEqual("123456789", self.buffer) |
b7351b503b4b
event_buffer: drain learned spec notes, get_data learned negative values, many tests written
Thomas Harning Jr <harningt@gmail.com>
parents:
36
diff
changeset
|
117 | assert_pass([[Should be able to apply negative draining to cause draining `all data` |
b7351b503b4b
event_buffer: drain learned spec notes, get_data learned negative values, many tests written
Thomas Harning Jr <harningt@gmail.com>
parents:
36
diff
changeset
|
118 | (see source comments for why)]], function() |
b7351b503b4b
event_buffer: drain learned spec notes, get_data learned negative values, many tests written
Thomas Harning Jr <harningt@gmail.com>
parents:
36
diff
changeset
|
119 | self.buffer:drain(-1) |
b7351b503b4b
event_buffer: drain learned spec notes, get_data learned negative values, many tests written
Thomas Harning Jr <harningt@gmail.com>
parents:
36
diff
changeset
|
120 | end) |
b7351b503b4b
event_buffer: drain learned spec notes, get_data learned negative values, many tests written
Thomas Harning Jr <harningt@gmail.com>
parents:
36
diff
changeset
|
121 | testDataEqual("", self.buffer) |
b7351b503b4b
event_buffer: drain learned spec notes, get_data learned negative values, many tests written
Thomas Harning Jr <harningt@gmail.com>
parents:
36
diff
changeset
|
122 | end |
b7351b503b4b
event_buffer: drain learned spec notes, get_data learned negative values, many tests written
Thomas Harning Jr <harningt@gmail.com>
parents:
36
diff
changeset
|
123 | |
b7351b503b4b
event_buffer: drain learned spec notes, get_data learned negative values, many tests written
Thomas Harning Jr <harningt@gmail.com>
parents:
36
diff
changeset
|
124 | function bufferTests:test_getPartial() |
b7351b503b4b
event_buffer: drain learned spec notes, get_data learned negative values, many tests written
Thomas Harning Jr <harningt@gmail.com>
parents:
36
diff
changeset
|
125 | self.buffer:add("123456789") |
b7351b503b4b
event_buffer: drain learned spec notes, get_data learned negative values, many tests written
Thomas Harning Jr <harningt@gmail.com>
parents:
36
diff
changeset
|
126 | assert_equal("1234", self.buffer:get_data(4)) |
b7351b503b4b
event_buffer: drain learned spec notes, get_data learned negative values, many tests written
Thomas Harning Jr <harningt@gmail.com>
parents:
36
diff
changeset
|
127 | assert_equal("1234", self.buffer:get_data(1,4)) |
b7351b503b4b
event_buffer: drain learned spec notes, get_data learned negative values, many tests written
Thomas Harning Jr <harningt@gmail.com>
parents:
36
diff
changeset
|
128 | assert_equal("5678", self.buffer:get_data(5,4)) |
b7351b503b4b
event_buffer: drain learned spec notes, get_data learned negative values, many tests written
Thomas Harning Jr <harningt@gmail.com>
parents:
36
diff
changeset
|
129 | assert_equal("5", self.buffer:get_data(5,1)) |
b7351b503b4b
event_buffer: drain learned spec notes, get_data learned negative values, many tests written
Thomas Harning Jr <harningt@gmail.com>
parents:
36
diff
changeset
|
130 | assert_equal("56789", self.buffer:get_data(5,100000000), "Data length is capped at max obtainable") |
b7351b503b4b
event_buffer: drain learned spec notes, get_data learned negative values, many tests written
Thomas Harning Jr <harningt@gmail.com>
parents:
36
diff
changeset
|
131 | assert_equal("56789", self.buffer:get_data(5,-100), "Negative sizes capture entire remaining string") |
b7351b503b4b
event_buffer: drain learned spec notes, get_data learned negative values, many tests written
Thomas Harning Jr <harningt@gmail.com>
parents:
36
diff
changeset
|
132 | assert_equal("9", self.buffer:get_data(-1, 1, "Negative position causes wraparound")) |
b7351b503b4b
event_buffer: drain learned spec notes, get_data learned negative values, many tests written
Thomas Harning Jr <harningt@gmail.com>
parents:
36
diff
changeset
|
133 | assert_equal("89", self.buffer:get_data(-2,2, "Negative wraparound does not cause length inversion")) |
b7351b503b4b
event_buffer: drain learned spec notes, get_data learned negative values, many tests written
Thomas Harning Jr <harningt@gmail.com>
parents:
36
diff
changeset
|
134 | end |
b7351b503b4b
event_buffer: drain learned spec notes, get_data learned negative values, many tests written
Thomas Harning Jr <harningt@gmail.com>
parents:
36
diff
changeset
|
135 | |
b7351b503b4b
event_buffer: drain learned spec notes, get_data learned negative values, many tests written
Thomas Harning Jr <harningt@gmail.com>
parents:
36
diff
changeset
|
136 | local lineData = [[1 |
b7351b503b4b
event_buffer: drain learned spec notes, get_data learned negative values, many tests written
Thomas Harning Jr <harningt@gmail.com>
parents:
36
diff
changeset
|
137 | 2 |
b7351b503b4b
event_buffer: drain learned spec notes, get_data learned negative values, many tests written
Thomas Harning Jr <harningt@gmail.com>
parents:
36
diff
changeset
|
138 | 3]] |
b7351b503b4b
event_buffer: drain learned spec notes, get_data learned negative values, many tests written
Thomas Harning Jr <harningt@gmail.com>
parents:
36
diff
changeset
|
139 | local splitLineData = { |
b7351b503b4b
event_buffer: drain learned spec notes, get_data learned negative values, many tests written
Thomas Harning Jr <harningt@gmail.com>
parents:
36
diff
changeset
|
140 | "1","2",nil |
b7351b503b4b
event_buffer: drain learned spec notes, get_data learned negative values, many tests written
Thomas Harning Jr <harningt@gmail.com>
parents:
36
diff
changeset
|
141 | } |
b7351b503b4b
event_buffer: drain learned spec notes, get_data learned negative values, many tests written
Thomas Harning Jr <harningt@gmail.com>
parents:
36
diff
changeset
|
142 | local mixedLineData = "1\r2\n3\r\n4\n\r5\r\r6\n\n7\r\n\r8\r\n\r9" |
b7351b503b4b
event_buffer: drain learned spec notes, get_data learned negative values, many tests written
Thomas Harning Jr <harningt@gmail.com>
parents:
36
diff
changeset
|
143 | local splitMixedLineData = { |
b7351b503b4b
event_buffer: drain learned spec notes, get_data learned negative values, many tests written
Thomas Harning Jr <harningt@gmail.com>
parents:
36
diff
changeset
|
144 | "1","2","3","4","5","","6","","7","","8","", nil |
b7351b503b4b
event_buffer: drain learned spec notes, get_data learned negative values, many tests written
Thomas Harning Jr <harningt@gmail.com>
parents:
36
diff
changeset
|
145 | } |
b7351b503b4b
event_buffer: drain learned spec notes, get_data learned negative values, many tests written
Thomas Harning Jr <harningt@gmail.com>
parents:
36
diff
changeset
|
146 | function bufferTests:test_readline() |
b7351b503b4b
event_buffer: drain learned spec notes, get_data learned negative values, many tests written
Thomas Harning Jr <harningt@gmail.com>
parents:
36
diff
changeset
|
147 | self.buffer:add(lineData) |
b7351b503b4b
event_buffer: drain learned spec notes, get_data learned negative values, many tests written
Thomas Harning Jr <harningt@gmail.com>
parents:
36
diff
changeset
|
148 | testDataEqual(lineData, self.buffer) |
b7351b503b4b
event_buffer: drain learned spec notes, get_data learned negative values, many tests written
Thomas Harning Jr <harningt@gmail.com>
parents:
36
diff
changeset
|
149 | for _, data in ipairs(splitLineData) do |
b7351b503b4b
event_buffer: drain learned spec notes, get_data learned negative values, many tests written
Thomas Harning Jr <harningt@gmail.com>
parents:
36
diff
changeset
|
150 | assert_equal(data, self.buffer:readline()) |
b7351b503b4b
event_buffer: drain learned spec notes, get_data learned negative values, many tests written
Thomas Harning Jr <harningt@gmail.com>
parents:
36
diff
changeset
|
151 | end |
b7351b503b4b
event_buffer: drain learned spec notes, get_data learned negative values, many tests written
Thomas Harning Jr <harningt@gmail.com>
parents:
36
diff
changeset
|
152 | testDataEqual("3", self.buffer, "Failed readline doesn't affect buffer contents") |
b7351b503b4b
event_buffer: drain learned spec notes, get_data learned negative values, many tests written
Thomas Harning Jr <harningt@gmail.com>
parents:
36
diff
changeset
|
153 | self.buffer:drain(-1) |
b7351b503b4b
event_buffer: drain learned spec notes, get_data learned negative values, many tests written
Thomas Harning Jr <harningt@gmail.com>
parents:
36
diff
changeset
|
154 | testDataEqual("", self.buffer) |
b7351b503b4b
event_buffer: drain learned spec notes, get_data learned negative values, many tests written
Thomas Harning Jr <harningt@gmail.com>
parents:
36
diff
changeset
|
155 | self.buffer:add(mixedLineData) |
b7351b503b4b
event_buffer: drain learned spec notes, get_data learned negative values, many tests written
Thomas Harning Jr <harningt@gmail.com>
parents:
36
diff
changeset
|
156 | testDataEqual(mixedLineData, self.buffer) |
b7351b503b4b
event_buffer: drain learned spec notes, get_data learned negative values, many tests written
Thomas Harning Jr <harningt@gmail.com>
parents:
36
diff
changeset
|
157 | for _, data in ipairs(splitMixedLineData) do |
b7351b503b4b
event_buffer: drain learned spec notes, get_data learned negative values, many tests written
Thomas Harning Jr <harningt@gmail.com>
parents:
36
diff
changeset
|
158 | assert_equal(data, self.buffer:readline()) |
b7351b503b4b
event_buffer: drain learned spec notes, get_data learned negative values, many tests written
Thomas Harning Jr <harningt@gmail.com>
parents:
36
diff
changeset
|
159 | end |
b7351b503b4b
event_buffer: drain learned spec notes, get_data learned negative values, many tests written
Thomas Harning Jr <harningt@gmail.com>
parents:
36
diff
changeset
|
160 | testDataEqual("9", self.buffer) |
36
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
161 | end |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
162 | |
139601546bd9
Learned event_buffer tests and added failure for 'add' if no args passed.
Thomas Harning Jr <harningt@gmail.com>
parents:
diff
changeset
|
163 | lunit.run() |