Boost logo

Boost Testing :

From: David Abrahams (dave_at_[hidden])
Date: 2005-08-22 09:38:45


David Abrahams <dave_at_[hidden]> writes:

> Aleksey Gurtovoy <agurtovoy_at_[hidden]> writes:
>
>> David Abrahams writes:
>>> Aleksey Gurtovoy <agurtovoy_at_[hidden]> writes:
>>>
>>>> make a wrapper toolset file which includes the version and
>>>> platform information in its name and place it in the same directory
>>>> with "regression.py".
>>>
>>> This technique isn't working for me. Neither is
>>> "--bjam-options=-sBOOST_BUILD_PATH=/path/to/my/toolset/file".
>>>
>>> In both cases bjam reports that the toolset isn't found.
>>
>> Does it work for you if you copy the bjam command line from the
>> 'regression.py' log and execute it on its own (from the script's
>> directory)?
>
> Kinda hard to do that since IIRC the image of boost gets cleaned up
                              ^^^^
> for me after the build fails. If I get a moment I'll look again.

I guess IDRC.

>> If not, either the command line is wrong, or something in
>> bjam is broken.

The command line is wrong. You're using Unix-style path separators (":")
instead of windows-style (";") in setting up BOOST_BUILD_PATH.

python -c "import os ; help(os.path)"

  Help on module ntpath:

  NAME
      ntpath - Common pathname manipulations, WindowsNT/95 version.

  FILE
      c:\python24\lib\ntpath.py

  ....

  DATA
      __all__ = ['normcase', 'isabs', 'join', 'splitdrive', 'split', 'splite...
      altsep = '/'
      curdir = '.'
      defpath = r'.;C:\bin'
      devnull = 'nul'
      extsep = '.'
      pardir = '..'
      pathsep = ';'
      ^^^^^^^^^^^^^
      sep = r'\'
      supports_unicode_filenames = True

I'd try to fix it myself, but I honestly don't know how multiple path
elements get into the bjam command line, from looking at the code:

  def bjam_command( toolsets ):
      build_path = regression_root
      if build_path[-1] == '\\': build_path += '\\'
      result = '"%s" "-sBOOST_BUILD_PATH=%s" "-sBOOST_ROOT=%s"'\
        % (
            tool_path( bjam )
          , build_path
          , boost_root
          )
    
Unless regression_root is somehow a list of paths(?)...

>> In either case, you are more qualified to say which
>> one it is ;).

Not this time ;)

>>> So now I'm wondering how to use my own toolset.
>>>
>>> Aside: I found it surprising that regression.py downloads the tarball
>>> into the directory where the script is, rather than into the current
>>> directory when it was invoked. At least, that's what it says it's
>>> doing ;-)
>>
>> Yep, that's what it's doing. Why did you find it surprising? After
>> all, the first line of the installation docs says:
>>
>> * Download regression driver regression.py from here
>> (http://tinyurl.com/4fp4g) and put it in the directory where you
>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>> want all the regression test files to be placed.
>> ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
>
> It's just a slightly surprising design decision from my POV because I
> always have an image of Boost lying around. The "obvious" interface
> would have be doing cd $(TEMP) followed by python
> $(BOOST_ROOT)/status/xsl_reports/runner/regression.py

Also, let me point out, there isn't much precedent for the location of
the script being a factor unless it's part of a larger package and
needs to find its brethren. There's nothing *wrong* with the current
behavior per-se, but well, my expectations were for something
different, and I got it wrong the first few times. Just an
ease-of-use datapoint.

-- 
Dave Abrahams
Boost Consulting
www.boost-consulting.com

Boost-testing list run by mbergal at meta-comm.com