=== source code for shell_SUITE:bs_construct_SUITE/1

=== Test case started with:
shell_SUITE:bs_construct_SUITE([{watchdog,<0.7576.6>},
                                {tc_logfile,
                                    "/home/pi/R16B03/otp-support/release/tests/test_server/ct_run.test_server@localhost.2014-01-03_17.38.00/tests.stdlib_test.logs/run.2014-01-03_17.51.25/shell_suite.bs_construct_suite.html"},
                                {tc_group_properties,[{name,bits}]},
                                {tc_group_path,[]},
                                {data_dir,
                                    "/home/pi/R16B03/otp-support/release/tests/stdlib_test/shell_SUITE_data/"},
                                {priv_dir,
                                    "/home/pi/R16B03/otp-support/release/tests/test_server/ct_run.test_server@localhost.2014-01-03_17.38.00/tests.stdlib_test.logs/run.2014-01-03_17.51.25/log_private/"},
                                {nodenames,[]}])

=== Current directory is "/home/pi/R16B03/otp-support/release/tests/test_server/ct_run.test_server@localhost.2014-01-03_17.38.00"

=== Started at 2014-01-03 20:20:59


*** Testing Testf_1 = fun(W, B) -> {'EXIT',{badarg,_}} = (catch << 42 : W >>),{'EXIT',{badarg,_}} = (catch << 3.14 : W / float >>),{'EXIT',{badarg,_}} = (catch << B : W / binary >>) end, TestF = fun() -> {'EXIT',{badarg,_}} = (catch << 3.14 >>),{'EXIT',{badarg,_}} = (catch << << 1 , 2 >> >>),{'EXIT',{badarg,_}} = (catch << 2.71 / binary >>),{'EXIT',{badarg,_}} = (catch << 24334 / binary >>),{'EXIT',{badarg,_}} = (catch << 24334344294788947129487129487219847 / binary >>),{'EXIT',{badarg,_}} = (catch << << 1 , 2 , 3 >> / float >>), %% Negative field widths. Testf_1(-8, <<1,2,3,4,5>>),{'EXIT',{badarg,_}} = (catch << 42 : ( - 16 ) >>),{'EXIT',{badarg,_}} = (catch << 3.14 : ( - 8 ) / float >>),{'EXIT',{badarg,_}} = (catch << << 23 , 56 , 0 , 2 >> : ( - 16 ) / binary >>),{'EXIT',{badarg,_}} = (catch << << 23 , 56 , 0 , 2 >> : ( 2.5 ) / binary >>),{'EXIT',{badarg,_}} = (catch << << 23 , 56 , 0 , 2 >> : ( anka ) >>) end, TestF(), NotUsed1 = fun(I, BinString) -> <>, ok end, NotUsed2 = fun(I, Sz) -> <>, ok end, NotUsed3 = fun(I) -><>, ok end, NotUsed = fun() -> ok = NotUsed1(3, <<"dum">>), {'EXIT',{badarg,_}} = (catch NotUsed1(3, "dum")), {'EXIT',{badarg,_}} = (catch NotUsed2 ( 444 , - 2 )),{'EXIT',{badarg,_}} = (catch NotUsed2 ( 444 , anka )),{'EXIT',{badarg,_}} = (catch NotUsed3 ( 444 )) end, NotUsed(), InGuard3 = fun(Bin, A, B) when <> == Bin -> 1; (Bin, A, B) when <> == Bin -> 2; (Bin, A, B) when <> == Bin -> 3; (Bin, A, B) when {a,b,<>} == Bin -> cant_happen; (_, _, _) -> nope end, InGuard = fun() -> 1 = InGuard3(<<16#74ad:16>>, 16#e95, 5), 2 = InGuard3(<<16#3A,16#F7,"hello">>, 16#3AF7, <<"hello">>), 3 = InGuard3(<<16#FBCD:14,3.1415/float,3:2>>, 16#FBCD, 3.1415), nope = InGuard3(<<1>>, 42, b), nope = InGuard3(<<1>>, a, b), nope = InGuard3(<<1,2>>, 1, 1), nope = InGuard3(<<4,5>>, 1, 2.71), nope = InGuard3(<<4,5>>, 1, <<12,13>>) end, InGuard(), Nonliteral = fun(X) -> X end, CoerceToFloat = fun() -> (fun(Int) -> true = <> =:= <<(float(Int)):32/float>>, true = <> =:= <<(float(Int)):64/float>> end)(Nonliteral(0)), true = <<0:32/float>> =:= <<(float(0)):32/float>>, true = <<0:64/float>> =:= <<(float(0)):64/float>>,(fun(Int) -> true = <> =:= <<(float(Int)):32/float>>, true = <> =:= <<(float(Int)):64/float>> end)(Nonliteral(- 1)), true = <<- 1:32/float>> =:= <<(float(- 1)):32/float>>, true = <<- 1:64/float>> =:= <<(float(- 1)):64/float>>,(fun(Int) -> true = <> =:= <<(float(Int)):32/float>>, true = <> =:= <<(float(Int)):64/float>> end)(Nonliteral(1)), true = <<1:32/float>> =:= <<(float(1)):32/float>>, true = <<1:64/float>> =:= <<(float(1)):64/float>>,(fun(Int) -> true = <> =:= <<(float(Int)):32/float>>, true = <> =:= <<(float(Int)):64/float>> end)(Nonliteral(42)), true = <<42:32/float>> =:= <<(float(42)):32/float>>, true = <<42:64/float>> =:= <<(float(42)):64/float>>,(fun(Int) -> true = <> =:= <<(float(Int)):32/float>>, true = <> =:= <<(float(Int)):64/float>> end)(Nonliteral(255)), true = <<255:32/float>> =:= <<(float(255)):32/float>>, true = <<255:64/float>> =:= <<(float(255)):64/float>>,(fun(Int) -> true = <> =:= <<(float(Int)):32/float>>, true = <> =:= <<(float(Int)):64/float>> end)(Nonliteral(- 255)), true = <<- 255:32/float>> =:= <<(float(- 255)):32/float>>, true = <<- 255:64/float>> =:= <<(float(- 255)):64/float>>,(fun(Int) -> true = <> =:= <<(float(Int)):64/float>> end)(Nonliteral(298748888888888888888888888883478264866528467367364766666666666666663)), true = <<298748888888888888888888888883478264866528467367364766666666666666663:64/float>> =:= <<(float(298748888888888888888888888883478264866528467367364766666666666666663)):64/float>>,(fun(Int) -> true = <> =:= <<(float(Int)):64/float>> end)(Nonliteral(- 367546729879999999999947826486652846736736476555566666663)), true = <<- 367546729879999999999947826486652846736736476555566666663:64/float>> =:= <<(float(- 367546729879999999999947826486652846736736476555566666663)):64/float>> end, CoerceToFloat(), ok. *** Testing I = fun(X) -> X end, Fail = fun() -> I_minus_777 = I(-777), I_minus_2047 = I(-2047), %% One negative field size, but the sum of field sizes will be 1 byte. %% Make sure that we reject that properly. {'EXIT',{badarg,_}} = (catch <>), %% Same thing, but use literals. {'EXIT',{badarg,_}} = (catch <>), %% Bad alignment. I_one = I(1), <<1:1>> = <<2375:I_one>>, <<3:2>> = <<45:1,2375:I_one>>, <<14:4>> = <<45:1,2375:I_one,918:2>>, <<118:7>> = <<45:1,2375:I_one,918:5>>, %% Not numbers. {'EXIT',{badarg,_}} = (catch <<45:(I(not_a_number))>>), {'EXIT',{badarg,_}} = (catch <<13:8,45:(I(not_a_number))>>), %% Unaligned sizes. BadSz = I(7), <<2:4>> = <<34:4>>, <<34:7>> = <<34:BadSz>>, [] = [X || {X} <- [], X == <<3:BadSz>>], [] = [X || {X} <- [], X == <<3:4>>] end, Fail(), FloatBin1 = fun(F) -> {<<1,2,3>>,F+3.0} end, FloatBin = fun() -> %% Some more coverage. {<<1,2,3>>,7.0} = FloatBin1(4) end, FloatBin(), ok. === Ended at 2014-01-03 20:21:00 === successfully completed test case === returned value = ok


Test run history | Top level test index