bbkr / JSON-RPC

JSON-RPC client and server for Raku language.
Artistic License 2.0
12 stars 11 forks source link

Test failed in spec 'null id is allowed' in client.t #17

Closed bluet closed 8 years ago

bluet commented 8 years ago

client.t test failed due to %request{'id'} eqv $response{'id'} failed. Which request id is 'Any::U' but server responed 'Any'.

Error msg: Request id is different than response id (-32000): {:request(${:id(Any:U), :jsonrpc("2.0"), :method("ping")}), :response(${:id(Any), :jsonrpc("2.0"), :result("pong")})}

I'm not really familiar with Perl6 but I try to point out possible lines caused this: https://github.com/bbkr/jsonrpc/blob/c1ff17aa829075e2fb708e367da097a6a577a149/t/client.t#L222 https://github.com/bbkr/jsonrpc/blob/c1ff17aa829075e2fb708e367da097a6a577a149/lib/JSON/RPC/Client.pm#L298 https://github.com/bbkr/jsonrpc/blob/c1ff17aa829075e2fb708e367da097a6a577a149/lib/JSON/RPC/Server.pm#L116 https://github.com/bbkr/jsonrpc/blob/c1ff17aa829075e2fb708e367da097a6a577a149/lib/JSON/RPC/Server.pm#L153

I just installed perl6 on my box following this howto: http://rakudo.org/how-to-get-rakudo/ git clone https://github.com/tadzik/rakudobrew ~/.rakudobrew echo 'export PATH=~/.rakudobrew/bin:$PATH' >> ~/.bash_profile source ~/.bash_profile rakudobrew build moar rakudobrew build-panda Problem firstly accured when I try to panda install Task::Star and it stopped at JSON::RPC. I'm still stuck here now.

bluet commented 8 years ago

ENV:

matthew@0xB1uE7:~/tmp/.panda-work/14445036151$ perl6 -V moar::dcbrule=@: moar::ar=ar moar::mastdir=/home/matthew/.rakudobrew/moar-nom/install/share/nqp/lib/MAST moar::tomrule=$(AR) $(ARFLAGS) $@ 3rdparty/libtommath/.o moar::syslibs[2]=rt moar::shaobjects=3rdparty/sha1/sha1.o moar::ccshared=-fPIC moar::be=0 moar::dynasmlua=./3rdparty/dynasm/dynasm.lua moar::ld=gcc moar::mtlib=3rdparty/tinymt/libtinymt.a moar::mtobjects=3rdparty/tinymt/tinymt64.o moar::noreturnspecifier= moar::perl=/home/matthew/perl5/perlbrew/perls/perl-5.20.0-thread-multi-clang/bin/perl moar::shaclean=$(RM) 3rdparty/sha1/libsha1.a 3rdparty/sha1/_.o moar::static_inline=static inline moar::ccdebugflags=-g3 moar::auxclean=@: moar::thirdpartylibs=3rdparty/dyncall/dyncall/libdyncall_s.a 3rdparty/dyncall/dyncallback/libdyncallback_s.a 3rdparty/dyncall/dynload/libdynload_s.a 3rdparty/libatomic_ops/src/libatomicops.a 3rdparty/tinymt/libtinymt.a 3rdparty/sha1/libsha1.a 3rdparty/libtommath/libtommath.a 3rdparty/libuv/libuv.a moar::config=--optimize --prefix=/home/matthew/.rakudobrew/moar-nom/install --make-install moar::ccinc=-I moar::ldout=-o moar::moarlib=libmoar.a moar::mtrule=$(AR) $(ARFLAGS) $@ 3rdparty/tinymt/.o moar::syslibs[0]=m moar::dcrule=cd 3rdparty/dyncall && ./configure && CC='$(CC)' CFLAGS='$(CFLAGS)' $(MAKE) -f Makefile moar::dcbobjects= moar::cflags=-Wdeclaration-after-statement -Werror=declaration-after-statement -O3 -DNDEBUG -D_REENTRANT -D_FILE_OFFSET_BITS=64 -fPIC moar::laolib=3rdparty/libatomic_ops/src/libatomic_ops.a moar::libdir=/home/matthew/.rakudobrew/moar-nom/install/lib moar::nul=/dev/null moar::osvers=3.2.0-63-generic moar::dlrule=@: moar::cat=cat moar::can_unalignedint32=1 moar::ldimp= moar::ccdef=-D moar::lib=lib%s.a moar::tomclean=$(RM) 3rdparty/libtommath/libtommath.a 3rdparty/libtommath/.o moar::dlllocal=attribute ((visibility ("hidden"))) moar::dcbclean=$(RM) 3rdparty/dyncall/dyncallback/libdyncallback_s.a moar::noreturnattribute=attribute((noreturn)) moar::ptr_size=8 moar::dllimport=attribute ((visibility ("default"))) moar::ccout=-o moar::can_unaligned_num64=1 moar::has_pthread_yield=1 moar::ldrpath=-Wl,-rpath,/home/matthew/.rakudobrew/moar-nom/install/lib -Wl,-rpath,/home/matthew/.rakudobrew/moar-nom/install/share/perl6/site/lib moar::ldusr=-l%s moar::mainflags=-DMVM_SHARED moar::name=moar moar::dll=lib%s.so moar::cincludes= -I3rdparty/libuv/include -I3rdparty/libuv/src -I3rdparty/libatomic_ops/src -I3rdparty/libtommath -I3rdparty/dynasm -I3rdparty/dyncall/dynload -I3rdparty/dyncall/dyncall -I3rdparty/dyncall/dyncallback moar::uvrule=$(AR) $(ARFLAGS) $@ $(UV_LINUX) moar::tomlib=3rdparty/libtommath/libtommath.a moar::syslibs[3]=dl moar::staticlib= moar::dlclean=$(RM) 3rdparty/dyncall/dynload/libdynload_s.a moar::make=make moar::ccinstflags=-pg moar::ldflags= -O3 -DNDEBUG -Wl,-rpath,/home/matthew/.rakudobrew/moar-nom/install/lib -Wl,-rpath,/home/matthew/.rakudobrew/moar-nom/install/share/perl6/site/lib moar::crossconf= moar::obj=.o moar::dlobjects= moar::defs[0]=REENTRANT moar::cppout=> moar::ccoptiflags=-O3 -DNDEBUG moar::asmswitch=-S moar::ldoptiflags=-O3 -DNDEBUG moar::mkflags= moar::moar=libmoar.so moar::version=2015.09-74-gedc44b5 moar::dcclean=cd 3rdparty/dyncall && $(MAKE) -f Makefile clean moar::moarshared= moar::sharule=$(AR) $(ARFLAGS) $@ 3rdparty/sha1/.o moar::ccwarnflags= moar::jit=$(JIT_POSIX_X64) moar::moardll=libmoar.so moar::asm=.s moar::mknoisy=ifneq ($(NOISY), 1)MSG = @echoCMD = @NOOUT = > /dev/nullNOERR = 2> /dev/nullendif moar::dclib=3rdparty/dyncall/dyncall/libdyncall_s.a moar::ccdefflags=-D_REENTRANT -D_FILE_OFFSET_BITS=64 moar::cc=gcc moar::exe= moar::lddir=-L moar::uvlib=3rdparty/libuv/libuv.a moar::dllib=3rdparty/dyncall/dynload/libdynload_s.a moar::shaincludedir=3rdparty/sha1 moar::versionmajor=2015 moar::cppswitch=-E moar::can_unaligned_int64=1 moar::lua=./3rdparty/dynasm/minilua moar::dcobjects= moar::cancgoto=1 moar::ldlibs=-lm -lpthread -lrt -ldl moar::mainlibs=-L. -lmoar moar::nativecall_backend=dyncall moar::objflags=-DMVM_BUILD_SHARED -fPIC moar::versionpatch=74 moar::laoclean=cd 3rdparty/libatomicops/src && $(MAKE) distclean moar::versionminor=09 moar::ccmiscflags=-Wdeclaration-after-statement -Werror=declaration-after-statement moar::install= $(MKPATH) $(DESTDIR)$(PREFIX)/include/libuv $(CP) 3rdparty/libuv/include/.h $(DESTDIR)$(PREFIX)/include/libuv $(MKPATH) $(DESTDIR)$(PREFIX)/include/libatomic_ops/atomic_ops/sysdeps/armcc $(MKPATH) $(DESTDIR)$(PREFIX)/include/libatomic_ops/atomic_ops/sysdeps/gcc $(MKPATH) $(DESTDIR)$(PREFIX)/include/libatomic_ops/atomic_ops/sysdeps/hpc $(MKPATH) $(DESTDIR)$(PREFIX)/include/libatomic_ops/atomic_ops/sysdeps/ibmc $(MKPATH) $(DESTDIR)$(PREFIX)/include/libatomic_ops/atomic_ops/sysdeps/icc $(MKPATH) $(DESTDIR)$(PREFIX)/include/libatomic_ops/atomic_ops/sysdeps/loadstore $(MKPATH) $(DESTDIR)$(PREFIX)/include/libatomic_ops/atomic_ops/sysdeps/msftc $(MKPATH) $(DESTDIR)$(PREFIX)/include/libatomic_ops/atomic_ops/sysdeps/sunc $(CP) 3rdparty/libatomicops/src/.h $(DESTDIR)$(PREFIX)/include/libatomic_ops $(CP) 3rdparty/libatomic_ops/src/atomicops/.h $(DESTDIR)$(PREFIX)/include/libatomic_ops/atomic_ops $(CP) 3rdparty/libatomic_ops/src/atomicops/sysdeps/.h $(DESTDIR)$(PREFIX)/include/libatomic_ops/atomic_ops/sysdeps $(CP) 3rdparty/libatomic_ops/src/atomicops/sysdeps/armcc/.h $(DESTDIR)$(PREFIX)/include/libatomic_ops/atomic_ops/sysdeps/armcc $(CP) 3rdparty/libatomic_ops/src/atomicops/sysdeps/gcc/.h $(DESTDIR)$(PREFIX)/include/libatomic_ops/atomic_ops/sysdeps/gcc $(CP) 3rdparty/libatomic_ops/src/atomicops/sysdeps/hpc/.h $(DESTDIR)$(PREFIX)/include/libatomic_ops/atomic_ops/sysdeps/hpc $(CP) 3rdparty/libatomic_ops/src/atomicops/sysdeps/ibmc/.h $(DESTDIR)$(PREFIX)/include/libatomic_ops/atomic_ops/sysdeps/ibmc $(CP) 3rdparty/libatomic_ops/src/atomicops/sysdeps/icc/.h $(DESTDIR)$(PREFIX)/include/libatomic_ops/atomic_ops/sysdeps/icc $(CP) 3rdparty/libatomic_ops/src/atomicops/sysdeps/loadstore/.h $(DESTDIR)$(PREFIX)/include/libatomic_ops/atomic_ops/sysdeps/loadstore $(CP) 3rdparty/libatomic_ops/src/atomicops/sysdeps/msftc/.h $(DESTDIR)$(PREFIX)/include/libatomic_ops/atomic_ops/sysdeps/msftc $(CP) 3rdparty/libatomic_ops/src/atomicops/sysdeps/sunc/.h $(DESTDIR)$(PREFIX)/include/libatomic_ops/atomicops/sysdeps/sunc $(CP) 3rdparty/libtommath/.h $(DESTDIR)$(PREFIX)/include/libtommath $(MKPATH) $(DESTDIR)$(PREFIX)/include/dyncall $(CP) 3rdparty/dyncall/dynload/.h $(DESTDIR)$(PREFIX)/include/dyncall $(CP) 3rdparty/dyncall/dyncall/.h $(DESTDIR)$(PREFIX)/include/dyncall $(CP) 3rdparty/dyncall/dyncallback/.h $(DESTDIR)$(PREFIX)/include/dyncall moar::laoobjects= moar::mtclean=$(RM) 3rdparty/tinymt/libtinymt.a 3rdparty/tinymt/.o moar::rm=rm -f moar::uvclean=$(RM) 3rdparty/libuv/libuv.a $(UV_LINUX) moar::sharedlib= moar::dllexport=attribute ((visibility ("default"))) moar::shalib=3rdparty/sha1/libsha1.a moar::arout= moar::lddebugflags=-g3 moar::osname=linux moar::prefix=/home/matthew/.rakudobrew/moar-nom/install moar::uvobjects=$(UV_LINUX) moar::dcblib=3rdparty/dyncall/dyncallback/libdyncallback_s.a moar::bindir=/home/matthew/.rakudobrew/moar-nom/install/bin moar::asmout=-o moar::laorule=cd 3rdparty/libatomic_ops && CC='$(CC)' CFLAGS='$(CFLAGS)' ./configure && cd src && $(MAKE) && cd .. moar::os=linux moar::sh=/bin/sh moar::arflags=rcs moar::ldshared=-shared -fPIC moar::defs[1]=_FILE_OFFSET_BITS=64 moar::impinst= moar::ldinstflags=-pg moar::ldmiscflags= moar::ldsys=-l%s moar::platform=$(PLATFORM_POSIX) moar::ccswitch=-c moar::formatattribute=attribute((format(X, Y, Z))) moar::tomobjects=3rdparty/libtommath/bn_error.o 3rdparty/libtommath/bn_fast_mp_invmod.o 3rdparty/libtommath/bn_fast_mp_montgomery_reduce.o 3rdparty/libtommath/bn_fast_s_mp_mul_digs.o 3rdparty/libtommath/bn_fast_s_mp_mul_high_digs.o 3rdparty/libtommath/bn_fast_s_mp_sqr.o 3rdparty/libtommath/bn_mp_2expt.o 3rdparty/libtommath/bn_mp_abs.o 3rdparty/libtommath/bn_mp_add.o 3rdparty/libtommath/bn_mp_add_d.o 3rdparty/libtommath/bn_mp_addmod.o 3rdparty/libtommath/bn_mp_and.o 3rdparty/libtommath/bn_mp_clamp.o 3rdparty/libtommath/bn_mp_clear.o 3rdparty/libtommath/bn_mp_clear_multi.o 3rdparty/libtommath/bn_mp_cmp.o 3rdparty/libtommath/bn_mp_cmp_d.o 3rdparty/libtommath/bn_mp_cmp_mag.o 3rdparty/libtommath/bn_mp_cnt_lsb.o 3rdparty/libtommath/bn_mp_copy.o 3rdparty/libtommath/bn_mp_count_bits.o 3rdparty/libtommath/bn_mp_div.o 3rdparty/libtommath/bn_mp_div_2.o 3rdparty/libtommath/bn_mp_div_2d.o 3rdparty/libtommath/bn_mp_div_3.o 3rdparty/libtommath/bn_mp_div_d.o 3rdparty/libtommath/bn_mp_dr_is_modulus.o 3rdparty/libtommath/bn_mp_dr_reduce.o 3rdparty/libtommath/bn_mp_dr_setup.o 3rdparty/libtommath/bn_mp_exch.o 3rdparty/libtommath/bn_mp_expt_d.o 3rdparty/libtommath/bn_mp_exptmod.o 3rdparty/libtommath/bn_mp_exptmod_fast.o 3rdparty/libtommath/bn_mp_exteuclid.o 3rdparty/libtommath/bn_mp_fread.o 3rdparty/libtommath/bn_mp_fwrite.o 3rdparty/libtommath/bn_mp_gcd.o 3rdparty/libtommath/bn_mp_get_int.o 3rdparty/libtommath/bn_mp_get_long.o 3rdparty/libtommath/bn_mp_grow.o 3rdparty/libtommath/bn_mp_init.o 3rdparty/libtommath/bn_mp_init_copy.o 3rdparty/libtommath/bn_mp_init_multi.o 3rdparty/libtommath/bn_mp_init_set.o 3rdparty/libtommath/bn_mp_init_set_int.o 3rdparty/libtommath/bn_mp_init_size.o 3rdparty/libtommath/bn_mp_invmod.o 3rdparty/libtommath/bn_mp_invmod_slow.o 3rdparty/libtommath/bn_mp_is_square.o 3rdparty/libtommath/bn_mp_jacobi.o 3rdparty/libtommath/bn_mp_karatsuba_mul.o 3rdparty/libtommath/bn_mp_karatsuba_sqr.o 3rdparty/libtommath/bn_mp_lcm.o 3rdparty/libtommath/bn_mp_lshd.o 3rdparty/libtommath/bn_mp_mod.o 3rdparty/libtommath/bn_mp_mod_2d.o 3rdparty/libtommath/bn_mp_mod_d.o 3rdparty/libtommath/bn_mp_montgomery_calc_normalization.o 3rdparty/libtommath/bn_mp_montgomery_reduce.o 3rdparty/libtommath/bn_mp_montgomery_setup.o 3rdparty/libtommath/bn_mp_mul.o 3rdparty/libtommath/bn_mp_mul_2.o 3rdparty/libtommath/bn_mp_mul_2d.o 3rdparty/libtommath/bn_mp_mul_d.o 3rdparty/libtommath/bn_mp_mulmod.o 3rdparty/libtommath/bn_mp_n_root.o 3rdparty/libtommath/bn_mp_neg.o 3rdparty/libtommath/bn_mp_or.o 3rdparty/libtommath/bn_mp_prime_fermat.o 3rdparty/libtommath/bn_mp_prime_is_divisible.o 3rdparty/libtommath/bn_mp_prime_is_prime.o 3rdparty/libtommath/bn_mp_prime_miller_rabin.o 3rdparty/libtommath/bn_mp_prime_next_prime.o 3rdparty/libtommath/bn_mp_prime_rabin_miller_trials.o 3rdparty/libtommath/bn_mp_prime_random_ex.o 3rdparty/libtommath/bn_mp_radix_size.o 3rdparty/libtommath/bn_mp_radix_smap.o 3rdparty/libtommath/bn_mp_rand.o 3rdparty/libtommath/bn_mp_read_radix.o 3rdparty/libtommath/bn_mp_read_signed_bin.o 3rdparty/libtommath/bn_mp_read_unsigned_bin.o 3rdparty/libtommath/bn_mp_reduce.o 3rdparty/libtommath/bn_mp_reduce_2k.o 3rdparty/libtommath/bn_mp_reduce_2k_l.o 3rdparty/libtommath/bn_mp_reduce_2k_setup.o 3rdparty/libtommath/bn_mp_reduce_2k_setup_l.o 3rdparty/libtommath/bn_mp_reduce_is_2k.o 3rdparty/libtommath/bn_mp_reduce_is_2k_l.o 3rdparty/libtommath/bn_mp_reduce_setup.o 3rdparty/libtommath/bn_mp_rshd.o 3rdparty/libtommath/bn_mp_set.o 3rdparty/libtommath/bn_mp_set_int.o 3rdparty/libtommath/bn_mp_set_long.o 3rdparty/libtommath/bn_mp_shrink.o 3rdparty/libtommath/bn_mp_signed_bin_size.o 3rdparty/libtommath/bn_mp_sqr.o 3rdparty/libtommath/bn_mp_sqrmod.o 3rdparty/libtommath/bn_mp_sqrt.o 3rdparty/libtommath/bn_mp_sub.o 3rdparty/libtommath/bn_mp_sub_d.o 3rdparty/libtommath/bn_mp_submod.o 3rdparty/libtommath/bn_mp_to_signed_bin.o 3rdparty/libtommath/bn_mp_to_signed_bin_n.o 3rdparty/libtommath/bn_mp_to_unsigned_bin.o 3rdparty/libtommath/bn_mp_to_unsigned_bin_n.o 3rdparty/libtommath/bn_mp_toom_mul.o 3rdparty/libtommath/bn_mp_toom_sqr.o 3rdparty/libtommath/bn_mp_toradix.o 3rdparty/libtommath/bn_mp_toradix_n.o 3rdparty/libtommath/bn_mp_unsigned_bin_size.o 3rdparty/libtommath/bn_mp_xor.o 3rdparty/libtommath/bn_mp_zero.o 3rdparty/libtommath/bn_prime_tab.o 3rdparty/libtommath/bn_reverse.o 3rdparty/libtommath/bn_s_mp_add.o 3rdparty/libtommath/bn_s_mp_exptmod.o 3rdparty/libtommath/bn_s_mp_mul_digs.o 3rdparty/libtommath/bn_s_mp_mul_high_digs.o 3rdparty/libtommath/bn_s_mp_sqr.o 3rdparty/libtommath/bn_s_mp_sub.o 3rdparty/libtommath/bncore.o moar::syslibs[1]=pthread perl6::name=rakudo perl6::codename= perl6::release-number= perl6::build-date=2015-10-10T17:16:50Z perl6::version=2015.09-326-ga964c1b

bbkr commented 8 years ago

Thanks for the report.

JSON::RPC is compatible with latest Rakudo release, you can use release instead of HEAD by invoking:

rakudobrew build moar 2015.09

I'll check why it breaks on Rakudo HEAD tomorrow.

ghost commented 8 years ago

Thanks! But now it breaks on URI. Perhaps Rakudobrew is broken?

bbkr commented 8 years ago

Latest Rakudo introduced Smileys which broke test.

Fixed in: https://github.com/bbkr/jsonrpc/commit/f4259f122acec227ee1d0a657da7c0036b05d5bb

Please try again on HEAD Rakudo version.

bluet commented 8 years ago

builds successfully, thanks!