1 require "#{File.dirname(__FILE__)}/../test_helper"
3 class TestEmitStruct < Test::Unit::TestCase
6 assert_kind_of Class, self.class.const_get(:Event1)
7 # assert self.class.const_get(:Event1).kind_of?(Struct)
8 @options = LISTENER_DEFAULTS.dup
11 def test_emit_struct_full
13 out = lwes_listener do
14 assert_nothing_raised do
15 emitter = LWES::Emitter.new(@options)
22 s.t_int64 = 10_000_000_000
23 s.t_uint64 = 10_000_000_000
24 s.t_ip_addr = '192.168.0.1'
31 value = s[m.to_sym] or next
32 regex = /\b#{m} = #{value};/
33 assert_equal 1, out.grep(regex).size,
34 "#{regex.inspect} didn't match #{out.inspect}"
38 def test_emit_struct_cplusplus
40 out = lwes_listener do
41 assert_nothing_raised do
42 emitter = LWES::Emitter.new(@options)
49 s.t_int64 = 10_000_000_000
50 s.t_uint64 = 10_000_000_000
51 s.t_ip_addr = '192.168.0.1'
58 value = s[m.to_sym] or next
59 regex = /\b#{m} = #{value};/
60 assert_equal 1, out.grep(regex).size,
61 "#{regex.inspect} didn't match #{out.inspect}"
65 def test_emit_from_class
72 :t_int64 => 10_000_000_000,
73 :t_uint64 => 10_000_000_000,
74 :t_ip_addr => '192.168.0.1',
75 :t_string => "STRING",
77 out = lwes_listener do
78 assert_nothing_raised do
79 emitter = LWES::Emitter.new(@options)
80 emitter.emit(Event1, opt)
84 opt.each do |m, value|
85 regex = /\b#{m} = #{value};/
86 assert_equal 1, out.grep(regex).size,
87 "#{regex.inspect} didn't match #{out.inspect}"
91 def test_emit_from_class_bad_type
92 out = lwes_listener do
93 e = assert_raises(TypeError) do
94 emitter = LWES::Emitter.new(@options)
100 :t_int64 => 10_000_000_000,
101 :t_uint64 => 10_000_000_000,
102 :t_ip_addr => '192.168.0.1',
103 :t_string => true, #"STRING",
105 emitter.emit(Event1, opt)
108 assert out.readlines.empty?
111 def test_emit_alt_class_name
112 out = lwes_listener do
113 emitter = LWES::Emitter.new(@options)
114 emitter.emit(Event, :t_uint32 => 16384)
117 assert_match %r{^Event1\[\d+\]}, out.first
122 ESF_FILE = "#{File.dirname(__FILE__)}/test1.esf"
123 LWES::Struct.new(:file=>ESF_FILE,
124 :parent => TestEmitStruct)
125 LWES::Struct.new(:file=>ESF_FILE,
126 :parent => TestEmitStruct,