From 869aff19338e474f003398aad0a251621df3517c Mon Sep 17 00:00:00 2001 From: Louis Pilfold Date: Tue, 30 Jun 2020 13:31:59 +0100 Subject: Fix crash with unmodified bit builder --- test/gleam/bit_builder_test.gleam | 65 ++++++++++++++++++++++++++++++++ test/gleam/bit_string_builder_test.gleam | 58 ---------------------------- 2 files changed, 65 insertions(+), 58 deletions(-) create mode 100644 test/gleam/bit_builder_test.gleam delete mode 100644 test/gleam/bit_string_builder_test.gleam (limited to 'test') diff --git a/test/gleam/bit_builder_test.gleam b/test/gleam/bit_builder_test.gleam new file mode 100644 index 0000000..b1635e5 --- /dev/null +++ b/test/gleam/bit_builder_test.gleam @@ -0,0 +1,65 @@ +import gleam/should +import gleam/bit_builder + +pub fn builder_test() { + let data = bit_builder.from_bit_string(<<1>>) + |> bit_builder.append(<<2>>) + |> bit_builder.append(<<3>>) + |> bit_builder.prepend(<<0>>) + + data + |> bit_builder.to_bit_string + |> should.equal(<<0, 1, 2, 3>>) + + data + |> bit_builder.byte_size + |> should.equal(4) +} + +pub fn builder_with_strings_test() { + let data = bit_builder.from_bit_string(<<1>>) + |> bit_builder.append_string("2") + |> bit_builder.append_string("3") + |> bit_builder.prepend_string("0") + + data + |> bit_builder.to_bit_string + |> should.equal(<<"0":utf8, 1, "2":utf8, "3":utf8>>) + + data + |> bit_builder.byte_size + |> should.equal(4) +} + +pub fn builder_with_builders_test() { + let data = bit_builder.from_bit_string(<<1>>) + |> bit_builder.append_builder(bit_builder.from_bit_string(<<2>>)) + |> bit_builder.append_builder(bit_builder.from_bit_string(<<3>>)) + |> bit_builder.prepend_builder(bit_builder.from_bit_string(<<0>>)) + + data + |> bit_builder.to_bit_string + |> should.equal(<<0, 1, 2, 3>>) + + data + |> bit_builder.byte_size + |> should.equal(4) +} + +pub fn concat_test() { + [ + bit_builder.from_bit_string(<<1, 2>>), + bit_builder.from_bit_string(<<3, 4>>), + bit_builder.from_bit_string(<<5, 6>>), + ] + |> bit_builder.concat + |> bit_builder.to_bit_string + |> should.equal(<<1, 2, 3, 4, 5, 6>>) +} + +pub fn from_string_test() { + // Regression test: no additional modification of the builder + bit_builder.from_bit_string(<<>>) + |> bit_builder.to_bit_string + |> should.equal(<<>>) +} diff --git a/test/gleam/bit_string_builder_test.gleam b/test/gleam/bit_string_builder_test.gleam deleted file mode 100644 index 43e010a..0000000 --- a/test/gleam/bit_string_builder_test.gleam +++ /dev/null @@ -1,58 +0,0 @@ -import gleam/should -import gleam/bit_builder - -pub fn builder_test() { - let data = bit_builder.from_bit_string(<<1>>) - |> bit_builder.append(<<2>>) - |> bit_builder.append(<<3>>) - |> bit_builder.prepend(<<0>>) - - data - |> bit_builder.to_bit_string - |> should.equal(<<0, 1, 2, 3>>) - - data - |> bit_builder.byte_size - |> should.equal(4) -} - -pub fn builder_with_strings_test() { - let data = bit_builder.from_bit_string(<<1>>) - |> bit_builder.append_string("2") - |> bit_builder.append_string("3") - |> bit_builder.prepend_string("0") - - data - |> bit_builder.to_bit_string - |> should.equal(<<"0":utf8, 1, "2":utf8, "3":utf8>>) - - data - |> bit_builder.byte_size - |> should.equal(4) -} - -pub fn builder_with_builders_test() { - let data = bit_builder.from_bit_string(<<1>>) - |> bit_builder.append_builder(bit_builder.from_bit_string(<<2>>)) - |> bit_builder.append_builder(bit_builder.from_bit_string(<<3>>)) - |> bit_builder.prepend_builder(bit_builder.from_bit_string(<<0>>)) - - data - |> bit_builder.to_bit_string - |> should.equal(<<0, 1, 2, 3>>) - - data - |> bit_builder.byte_size - |> should.equal(4) -} - -pub fn concat_test() { - [ - bit_builder.from_bit_string(<<1, 2>>), - bit_builder.from_bit_string(<<3, 4>>), - bit_builder.from_bit_string(<<5, 6>>), - ] - |> bit_builder.concat - |> bit_builder.to_bit_string - |> should.equal(<<1, 2, 3, 4, 5, 6>>) -} -- cgit v1.2.3