Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 340385 - dev-ruby/rspec-1.3.1 fails tests on alpha
Summary: dev-ruby/rspec-1.3.1 fails tests on alpha
Status: RESOLVED FIXED
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: New packages (show other bugs)
Hardware: All Linux
: High normal (vote)
Assignee: Gentoo Ruby Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-10-10 18:49 UTC by Tobias Klausmann (RETIRED)
Modified: 2014-05-13 17:58 UTC (History)
1 user (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
build log (dev-ruby:rspec-1.3.1:20101010-184824.log,25.35 KB, text/plain)
2010-10-10 18:51 UTC, Tobias Klausmann (RETIRED)
Details
New rspec-1.3.2 build log with failing tests (dev-ruby:rspec-1.3.2-build.log,26.55 KB, text/x-log)
2013-08-19 08:57 UTC, Tobias Klausmann (RETIRED)
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Tobias Klausmann (RETIRED) gentoo-dev 2010-10-10 18:49:54 UTC
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.
Comment 1 Tobias Klausmann (RETIRED) gentoo-dev 2010-10-10 18:51:47 UTC
Created attachment 250139 [details]
build log
Comment 2 Hans de Graaff gentoo-dev Security 2011-12-26 10:48:58 UTC
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.
Comment 3 Tobias Klausmann (RETIRED) gentoo-dev 2011-12-28 11:25:49 UTC
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.
Comment 4 Tobias Klausmann (RETIRED) gentoo-dev 2011-12-28 20:25:29 UTC
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?
Comment 5 Hans de Graaff gentoo-dev Security 2011-12-29 07:23:43 UTC
(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.
Comment 6 Manuel Rüger (RETIRED) gentoo-dev 2013-08-19 07:55:33 UTC
alpha keyworded rspec-1.3.2 and rspec-2.13.*

@alpha is this bug still valid?
Comment 7 Tobias Klausmann (RETIRED) gentoo-dev 2013-08-19 08:57:58 UTC
Created attachment 356408 [details]
New rspec-1.3.2 build log with failing tests
Comment 8 Tobias Klausmann (RETIRED) gentoo-dev 2013-08-19 08:58:16 UTC
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
Comment 9 Hans de Graaff gentoo-dev Security 2014-05-04 09:33:13 UTC
(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.
Comment 10 Tobias Klausmann (RETIRED) gentoo-dev 2014-05-11 11:23:03 UTC
(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
Comment 11 Hans de Graaff gentoo-dev Security 2014-05-12 18:21:02 UTC
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.
Comment 12 Tobias Klausmann (RETIRED) gentoo-dev 2014-05-13 17:58:45 UTC
Indeed, the tests "pass" now.

Thanks for working on this, it's been open a looong time.