translate erlectricity list decoder to C
[fuzed.git] / gems / erlectricity / test / test_helper.rb
blobbf53ebf877a8d57e853220cd6fb74dcc2604d28e
1 $:.unshift(File.dirname(__FILE__) + '/../lib')
2 require 'erlectricity'
3 require 'rubygems'
4 require 'test/unit'
5 require 'test/spec'
7 class Test::Unit::TestCase
8   
9   def run_erl(code)
10     `erl -noshell -eval 'A = #{code.split.join(' ')}, io:put_chars(A).' -s erlang halt`
11   end
12   
13   def encode_packet(code)
14     bin = run_erl("term_to_binary(#{code})")
15     [bin.length, bin].pack("Na#{bin.length}")
16   end
17   
18   def word_length
19     (1.size * 8) - 2
20   end
21 end
23 class FakePort < Erlectricity::Port
24   attr_reader :sent
25   attr_reader :terms
26   
27   def initialize(*terms)
28     @terms = terms
29     @sent = []
30     super(StringIO.new(""), StringIO.new(""))
31   end
33   def send(term)
34     sent << term
35   end
36   
37   private
38   def read_from_input
39     @terms.shift
40   end
41 end