[Rake-devel] Question about system call and multiple arguments.

Luis Lavena luislavena at gmail.com
Sat Nov 1 12:26:58 EDT 2008


Hello Everybody,

I asked before about this, since one thing I cannot stand are the
"SKIPPING test on windows" on any project, they make me think
something is broken with Windows or with Ruby implementation on
Windows.

All this started with shell expansion of single argument system call:
http://rubyforge.org/pipermail/rake-devel/2008-September/000581.html

And I raised some questions about system(...) behavior with one or
multiple arguments.

Back to the topic, here:
http://rubyforge.org/pipermail/rake-devel/2008-October/000601.html

I'm trying to find the real problem about the implementation of
system(...) call for this test:

http://github.com/jimweirich/rake/tree/master/test/test_fileutils.rb#L214-240

      # This one does not get expanded
      block_run = false
      ruby '-e', %{exit "#{env_var}".length} do |ok, status| # " (emacs wart)
        assert(!ok)
        assert_equal 15, status.exitstatus
        block_run = true
      end
      assert block_run, "The block must be run"
==

I just verified the output of the command being generated:

ruby -e exit "$RAKE_TEST_RUBY".length


And tested that on linux:

http://pastie.org/private/b7cdjijfgrt1j518cdlosa

As you can see, the lack of quotes around the command for -e option is
generating the issue.

Did I miss something?

Thanks in advance for your time, I'm looking forward find the issue
behind this to properly patch ruby if required.

Regards,
-- 
Luis Lavena
AREA 17
-
Human beings, who are almost unique in having the ability to learn from
the experience of others, are also remarkable for their apparent
disinclination to do so.
Douglas Adams


More information about the Rake-devel mailing list