Pending: mock failure should tell you when it receives the right message with the wrong args if you stub the method (fix bug 15719) ./spec/spec/mocks/bug_report_15719_spec.rb:16 1) 'HeckleRunner should fail heckling when the class is not found' FAILED expected StandardError with "Heckling failed - \"Foo::Bob\" is not a known class or module" but nothing was raised ./spec/spec/runner/heckle_runner_spec.rb:42: 2) 'OptionParser should print instructions about how to require missing formatter' FAILED expected "" to match /Couldn't find formatter class Custom::MissingFormatter/n ./spec/spec/runner/option_parser_spec.rb:126: 3) 'OptionParser should print instructions about how to fix missing differ' FAILED expected NameError but nothing was raised ./spec/spec/runner/option_parser_spec.rb:276: 4) 'Spec::Runner::Options#parse_diff with missing class name should raise error' FAILED expected NameError but nothing was raised ./spec/spec/runner/options_spec.rb:202: Finished in 33.579096 seconds 1570 examples, 4 failures, 1 pending rake aborted! # emerge --info Portage 2.1.8.3 (default/linux/alpha/10.0, gcc-4.4.3, glibc-2.11.2-r0, 2.6.35.7 alpha) ================================================================= System uname: Linux-2.6.35.7-alpha-EV68AL-with-gentoo-1.12.13 Timestamp of tree: Sun, 10 Oct 2010 16:15:01 +0000 distcc 3.1 alpha-unknown-linux-gnu [enabled] app-shells/bash: 4.0_p37 dev-lang/python: 2.6.5-r3 sys-apps/baselayout: 1.12.13 sys-apps/sandbox: 1.6-r2 sys-devel/autoconf: 2.65-r1 sys-devel/automake: 1.4_p6-r1, 1.11.1 sys-devel/binutils: 2.20.1-r1 sys-devel/gcc: 4.4.3-r2 sys-devel/gcc-config: 1.4.1 sys-devel/libtool: 2.2.6b sys-devel/make: 3.81-r2 virtual/os-headers: 2.6.33 ACCEPT_KEYWORDS="alpha" ACCEPT_LICENSE="* -@EULA" CBUILD="alpha-unknown-linux-gnu" CFLAGS="-mieee -pipe -O2 -mcpu=ev67" CHOST="alpha-unknown-linux-gnu" CONFIG_PROTECT="/etc" CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/eselect/postgresql /etc/fonts/fonts.conf /etc/gconf /etc/php/apache2-php5/ext-active/ /etc/php/cgi-php5/ext-active/ /etc/php/cli-php5/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo" CXXFLAGS="-mieee -pipe -O2 -mcpu=ev67" DISTDIR="/usr/portage/distfiles" FEATURES="assume-digests buildpkg distcc distlocks fixpackages news parallel-fetch protect-owned sandbox sfperms strict unmerge-logs unmerge-orphans userfetch" GENTOO_MIRRORS="http://gentoo.tiscali.nl/ http://mirrors.sec.informatik.tu-darmstadt.de/gentoo/" LDFLAGS="-Wl,-O1 -Wl,--as-needed" MAKEOPTS="-j2" PKGDIR="/usr/portage/packages" PORTAGE_CONFIGROOT="/" PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages" PORTAGE_TMPDIR="/var/tmp" PORTDIR="/usr/portage" PORTDIR_OVERLAY="/usr/local/portage" SYNC="rsync://rsync5.de.gentoo.org/gentoo-portage" USE="acl alpha alsa apache2 audiofile bash-completion berkdb bmp bzip2 calendar cdparanoia cdr cli cracklib crypt cxx dio dri encode ethereal exif ffmpeg fftw firefox flac fortran ftp gdbm gpm iconv imlib2 jpeg libcaca lua mad matroska mmap mng modules moznocompose moznoirc moznomail mozsvg mpeg mudflap ncurses network-cron nls nptl nptlonly offensive ogg openmp pam pcre pdflib perl png pnm ppds pppd python rar readline recode reflection session sharedmem sockets sox ssl svg sysfs szip tcpd tetex theora truetype unicode usb v4l v4l2 vcd vidix vim vim-pager vlm vorbis xcb xorg xosd xpm xvid zlib" ALSA_CARDS="ali5451 als4000 bt87x ca0106 cmipci emu10k1 ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 maestro3 trident usb-audio via82xx ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" PHP_TARGETS="php-5.2" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="vga glint mga nvidia vesa r128 " XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" Unset: CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, FFLAGS, INSTALL_MASK, LANG, LC_ALL, LINGUAS, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS Build log follows.
Created attachment 250139 [details] build log
Could you retry this with rspec 1.3.2? The build.log doesn't show me clues what might be going on here, so I can't really give advice on how to progress this further other than testing the latest version in this slot.
Trying with the newer rspec: Pending: mock failure should tell you when it receives the right message with the wrong args if you stub the method (fix bug 15719) ./spec/spec/mocks/bug_report_15719_spec.rb:16 1) Spec::Mocks::MockExpectationError in 'ExampleGroupMethods#run_before_all does not create an instance if before_all_parts are empty' <#<Class:0x20001545828> (class)> expected :new with (before(:all)) 0 times, but received it once ./spec/spec/example/example_group_methods_spec.rb:662:in `__send__' ./spec/spec/example/example_group_methods_spec.rb:662: 2) NoMethodError in 'ExampleGroupMethods#run_after_all does not create an instance if after_all_parts are empty' undefined method `reporter' for nil:NilClass ./spec/spec/example/example_group_methods_spec.rb:670:in `__send__' ./spec/spec/example/example_group_methods_spec.rb:670: Finished in 31.102447 seconds 1577 examples, 2 failures, 1 pending rake aborted! This, however is with a rather old chroot. I'll update it and try again. It will take a while, though.
With the chroot updated, parsetree (a dep when testing) fails to emerge with the dreaded: cp: cannot stat `.ruby_inline/*.so': No such file or directory Yet the chroot does _not_ have parsetree already installed. Suggestions?
(In reply to comment #4) > With the chroot updated, parsetree (a dep when testing) fails to emerge with > the dreaded: > > cp: cannot stat `.ruby_inline/*.so': No such file or directory > > Yet the chroot does _not_ have parsetree already installed. That issue was fixed with parsetree 3.0.6. > Suggestions? My best guess is that the C code in parsetree (I'm assuming you are trying 3.0.8) actually doesn't compile for some reason on alpha. Unfortunately that compilation process is very well hidden behind the scenes so it's not easy to see its output and diagnose the issue, so this would need some digging in what is really going on behind the scenes.
alpha keyworded rspec-1.3.2 and rspec-2.13.* @alpha is this bug still valid?
Created attachment 356408 [details] New rspec-1.3.2 build log with failing tests
Current state with dev-ruby/rspec-1.3.2: 1) 'Diff should output diff message if the hash is complex (containing Array or Hash)' FAILED expected: "\nExpected the key \"fizz\" to be [1, 2, 3], but was [1, 2]\nExpected the key \"foo\" to be \"bar\", but was \"baz\"\n\n\n@@ -1,2 +1,2 @@\n-{\"fizz\"=>[1, 2, 3], \"foo\"=>\"bar\"}\n+{\"fizz\"=>[1, 2], \"foo\"=>\"baz\"}\n", got: "\nExpected the key \"fizz\" to be [1, 2, 3], but was [1, 2]\nExpected the key \"foo\" to be \"bar\", but was \"baz\"\n\n\n@@ -1,2 +1,2 @@\n-{\"foo\"=>\"bar\", \"fizz\"=>[1, 2, 3]}\n+{\"foo\"=>\"baz\", \"fizz\"=>[1, 2]}\n" (using ==) Diff: @@ -4,6 +4,6 @@ @@ -1,2 +1,2 @@ --{"fizz"=>[1, 2, 3], "foo"=>"bar"} -+{"fizz"=>[1, 2], "foo"=>"baz"} +-{"foo"=>"bar", "fizz"=>[1, 2, 3]} ++{"foo"=>"baz", "fizz"=>[1, 2]} ./spec/spec/expectations/differs/default_spec.rb:140: 2) Errno::ENOENT in 'OptionParser implicitly loading spec/spec.opts uses spec/spec.opts if present' No such file or directory - No such file or directory - spec/spec.opts ./spec/spec/runner/option_parser_spec.rb:530:in `open' ./spec/spec/runner/option_parser_spec.rb:530: 3) Errno::ENOENT in 'OptionParser implicitly loading spec/spec.opts does not try to load spec/spec.opts if not present' No such file or directory - spec/spec.opts ./spec/spec/runner/option_parser_spec.rb:536: 4) Errno::ENOENT in 'OptionParser implicitly loading spec/spec.opts uses specified opts if supplied' No such file or directory - No such file or directory - spec/spec.opts ./spec/spec/runner/option_parser_spec.rb:543:in `open' ./spec/spec/runner/option_parser_spec.rb:543: Finished in 27.832708 seconds
(In reply to Tobias Klausmann from comment #8) > Current state with dev-ruby/rspec-1.3.2: > > 1) > 'Diff should output diff message if the hash is complex (containing Array or > Hash)' FAILED I'm assuming, giving the timeframe of the bug, that this was still with ruby18. If so, that failure can be ignored. (Ruby 1.8 does not guarantee a specific ordering for hash keys, while 1.9+ do). > ./spec/spec/expectations/differs/default_spec.rb:140: > > 2) > Errno::ENOENT in 'OptionParser implicitly loading spec/spec.opts uses > spec/spec.opts if present' > No such file or directory - No such file or directory - spec/spec.opts > ./spec/spec/runner/option_parser_spec.rb:530:in `open' > ./spec/spec/runner/option_parser_spec.rb:530: > > 3) > Errno::ENOENT in 'OptionParser implicitly loading spec/spec.opts does not > try to load spec/spec.opts if not present' > No such file or directory - spec/spec.opts > ./spec/spec/runner/option_parser_spec.rb:536: > > 4) > Errno::ENOENT in 'OptionParser implicitly loading spec/spec.opts uses > specified opts if supplied' > No such file or directory - No such file or directory - spec/spec.opts > ./spec/spec/runner/option_parser_spec.rb:543:in `open' > ./spec/spec/runner/option_parser_spec.rb:543: > > Finished in 27.832708 seconds These I don't understand.
(In reply to Hans de Graaff from comment #9) > (In reply to Tobias Klausmann from comment #8) > > Current state with dev-ruby/rspec-1.3.2: > > > > 1) > > 'Diff should output diff message if the hash is complex (containing Array or > > Hash)' FAILED > > I'm assuming, giving the timeframe of the bug, that this was still with > ruby18. If so, that failure can be ignored. (Ruby 1.8 does not guarantee a > specific ordering for hash keys, while 1.9+ do). I just tried with ruby 1.9.3p484 (2013-11-22 revision 43786) [alpha-linux] and indeed, this error goes away. The other three are still there: Pending: mock failure should tell you when it receives the right message with the wrong args if you stub the method (fix bug 15719) /var/tmp/portage/dev-ruby/rspec-1.3.2/work/ruby19/rspec-1.3.2/spec/spec/mocks/bug_report_15719_spec.rb:16:in `block in <module:Mocks>' 1) Errno::ENOENT in 'OptionParser implicitly loading spec/spec.opts uses spec/spec.opts if present' No such file or directory - No such file or directory - spec/spec.opts /var/tmp/portage/dev-ruby/rspec-1.3.2/work/ruby19/rspec-1.3.2/spec/spec/runner/option_parser_spec.rb:530:in `open' /var/tmp/portage/dev-ruby/rspec-1.3.2/work/ruby19/rspec-1.3.2/spec/spec/runner/option_parser_spec.rb:530:in `block (3 levels) in <top (required)>' 2) Errno::ENOENT in 'OptionParser implicitly loading spec/spec.opts does not try to load spec/spec.opts if not present' No such file or directory - spec/spec.opts /var/tmp/portage/dev-ruby/rspec-1.3.2/work/ruby19/rspec-1.3.2/spec/spec/runner/option_parser_spec.rb:536:in `block (3 levels) in <top (required)>' 3) Errno::ENOENT in 'OptionParser implicitly loading spec/spec.opts uses specified opts if supplied' No such file or directory - No such file or directory - spec/spec.opts /var/tmp/portage/dev-ruby/rspec-1.3.2/work/ruby19/rspec-1.3.2/spec/spec/runner/option_parser_spec.rb:543:in `open' /var/tmp/portage/dev-ruby/rspec-1.3.2/work/ruby19/rspec-1.3.2/spec/spec/runner/option_parser_spec.rb:543:in `block (3 levels) in <top (required)>' Finished in 28.878691603 seconds 1576 examples, 3 failures, 1 pending
Aha! It turns out that these specs are actually broken because they don't set up their starting state correctly. It looks like this worked before with older fakefs versions, but fakefs 0.4.2 and newer seem to catch this and error out. Somehow we never figured out that we used different fakefs versions here. I've decided to "fix" this by not running these specs, given that rspec 1.x is EOL anyway. Hopefully this gives you a clean run now.
Indeed, the tests "pass" now. Thanks for working on this, it's been open a looong time.