test/event_buffer-tests.lua

Wed, 15 Jul 2009 10:39:10 -0400

author
Thomas Harning Jr <harningt@gmail.com>
date
Wed, 15 Jul 2009 10:39:10 -0400
changeset 64
dd47dbe85bec
parent 37
b7351b503b4b
permissions
-rw-r--r--

Merge branch 'v0.2'

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()

mercurial