Differences between revisions 8 and 9
Revision 8 as of 2010-08-20 18:20:04
Size: 2259
Editor: miong
Comment: Bot
Revision 9 as of 2010-08-23 12:21:45
Size: 2107
Editor: farid
Comment:
Deletions are marked like this. Additions are marked like this.
Line 1: Line 1:
#!/usr/bin/python 1. Download the stdcxx source in some directory $(TOPDIR):
{{{
  cd /usr/src
  svn co http://svn.apache.org/repos/asf/stdcxx/branches/4.2.x stdcxx
}}}
2. Build stdcxx (11s, 11d, 15s, 15d build types). The $(BUILDDIR) should be $(BUILD_ROOT)/$(compiler)-$(compiler-ver)/$(buildtype), where $(compiler) is one of gcc, icc, sun.
Line 3: Line 8:
# Copyright Redshift Software, Inc. 2007
#
# Distributed under the Boost Software License, Version 1.0.
# (See accompanying file LICENSE_1_0.txt or copy at
# http://www.boost.org/LICENSE_1_0.txt)
I.e. for gcc 4.2.1, BUILD_ROOT=/usr/tmp/stdcxx:
{{{
  cd /usr/src/stdcxx
  gmake builddir BUILDDIR=/usr/tmp/stdcxx/gcc-4.2.1/11s BUILDTYPE=11s CONFIG=gcc.config
  gmake builddir BUILDDIR=/usr/tmp/stdcxx/gcc-4.2.1/11d BUILDTYPE=11d CONFIG=gcc.config
  gmake builddir BUILDDIR=/usr/tmp/stdcxx/gcc-4.2.1/15s BUILDTYPE=15s CONFIG=gcc.config
  gmake builddir BUILDDIR=/usr/tmp/stdcxx/gcc-4.2.1/15d BUILDTYPE=15d CONFIG=gcc.config
  cd /usr/tmp/stdcxx/gcc-4.2.1/11s/include
  gmake
  cd ../lib
  gmake
  cd /usr/tmp/stdcxx/gcc-4.2.1/11d/include
  gmake
  cd ../lib
  gmake
  cd /usr/tmp/stdcxx/gcc-4.2.1/15s/include
  gmake
  cd ../lib
  gmake
  cd /usr/tmp/stdcxx/gcc-4.2.1/15d/include
  gmake
  cd ../lib
  gmake
}}}
3. Download [[http://svn.boost.org/svn/boost/trunk/tools/regression/src/run.py|run.py]] in some directory $(BOOST_TEST_ROOT)
{{{
  mkdir /usr/src/boost_test
  cd /usr/src/boost_test
  wget http://svn.boost.org/svn/boost/trunk/tools/regression/src/run.py
}}}
4. Extract in $(BOOST_TEST_ROOT) the [[http://people.apache.org/~faridz/boost_test.zip|boost_test.zip]]
{{{
  wget http://people.apache.org/~faridz/boost_test.zip
  unzip boost_test.zip
}}}
5. Create $(compiler)-$(compiler-ver).patch file (from this step for intel compiler the $(compiler)=intel, but not icc), copying from one of gcc-4.2.1.patch, intel-10.1.patch, sun-5.9.patch and updating if needed:
 * the compiler version in line "+using $(compiler) : $(compiler_ver)_stdcxx_421 ;"
 * the stdcxx paths in line "+using stdcxx : 4.2.1 : $(TOPDIR) $(BUILD_ROOT) ;"
Line 9: Line 47:
import os
import os.path
import shutil
import sys
import urllib
6. Update runtests.sh changing the --runner= option to personal runner id.
Line 15: Line 49:
#~ Using --skip-script-download is useful to avoid repeated downloading of
#~ the regression scripts when doing the regression commands individually.
no_update_argument = "--skip-script-download"
no_update = no_update_argument in sys.argv
if no_update:
    del sys.argv[sys.argv.index(no_update_argument)]

#~ The directory this file is in.
root = os.path.abspath(os.path.dirname(os.path.realpath(__file__)))
print '# Running regressions in %s...' % root

script_sources = [ 'collect_and_upload_logs.py', 'process_jam_log.py', 'regression.py' ]
script_local = os.path.join(root,'tools','regression','src')
script_remote = 'http://svn.boost.org/svn/boost/trunk/tools/regression/src'
script_dir = os.path.join(root,'tools_regression_src')

if not no_update:
    #~ Bootstrap.
    #~ * Clear out any old versions of the scripts
    print '# Creating regression scripts at %s...' % script_dir
    if os.path.exists(script_dir):
        shutil.rmtree(script_dir)
    os.mkdir(script_dir)
    #~ * Get new scripts, either from local working copy, or from svn
    if os.path.exists(script_local):
        print '# Copying regression scripts from %s...' % script_local
        for src in script_sources:
            shutil.copyfile( os.path.join(script_local,src), os.path.join(script_dir,src) )
    else:
        print '# Dowloading regression scripts from %s...' % script_remote
        proxy = None
        for a in sys.argv[1:]:
            if a.startswith('--proxy='):
                proxy = {'http' : a.split('=')[1] }
                print '--- %s' %(proxy['http'])
                break
        for src in script_sources:
            urllib.FancyURLopener(proxy).retrieve(
                '%s/%s' % (script_remote,src), os.path.join(script_dir,src) )

#~ * Make the scripts available to Python
sys.path.insert(0,os.path.join(root,'tools_regression_src'))

#~ Launch runner.
from regression import runner
runner(root)
7. Run tests for specified compiler ./runtests.sh $(compiler)-$(compiler-ver)
{{{
  ./runtests.sh gcc-4.2.1
}}}

1. Download the stdcxx source in some directory $(TOPDIR):

  cd /usr/src
  svn co http://svn.apache.org/repos/asf/stdcxx/branches/4.2.x stdcxx

2. Build stdcxx (11s, 11d, 15s, 15d build types). The $(BUILDDIR) should be $(BUILD_ROOT)/$(compiler)-$(compiler-ver)/$(buildtype), where $(compiler) is one of gcc, icc, sun.

I.e. for gcc 4.2.1, BUILD_ROOT=/usr/tmp/stdcxx:

  cd /usr/src/stdcxx
  gmake builddir BUILDDIR=/usr/tmp/stdcxx/gcc-4.2.1/11s BUILDTYPE=11s CONFIG=gcc.config
  gmake builddir BUILDDIR=/usr/tmp/stdcxx/gcc-4.2.1/11d BUILDTYPE=11d CONFIG=gcc.config
  gmake builddir BUILDDIR=/usr/tmp/stdcxx/gcc-4.2.1/15s BUILDTYPE=15s CONFIG=gcc.config
  gmake builddir BUILDDIR=/usr/tmp/stdcxx/gcc-4.2.1/15d BUILDTYPE=15d CONFIG=gcc.config
  cd /usr/tmp/stdcxx/gcc-4.2.1/11s/include
  gmake
  cd ../lib
  gmake
  cd /usr/tmp/stdcxx/gcc-4.2.1/11d/include
  gmake
  cd ../lib
  gmake
  cd /usr/tmp/stdcxx/gcc-4.2.1/15s/include
  gmake
  cd ../lib
  gmake
  cd /usr/tmp/stdcxx/gcc-4.2.1/15d/include
  gmake
  cd ../lib
  gmake

3. Download run.py in some directory $(BOOST_TEST_ROOT)

  mkdir /usr/src/boost_test
  cd /usr/src/boost_test
  wget http://svn.boost.org/svn/boost/trunk/tools/regression/src/run.py

4. Extract in $(BOOST_TEST_ROOT) the boost_test.zip

  wget http://people.apache.org/~faridz/boost_test.zip
  unzip boost_test.zip

5. Create $(compiler)-$(compiler-ver).patch file (from this step for intel compiler the $(compiler)=intel, but not icc), copying from one of gcc-4.2.1.patch, intel-10.1.patch, sun-5.9.patch and updating if needed:

  • the compiler version in line "+using $(compiler) : $(compiler_ver)_stdcxx_421 ;"
  • the stdcxx paths in line "+using stdcxx : 4.2.1 : $(TOPDIR) $(BUILD_ROOT) ;"

6. Update runtests.sh changing the --runner= option to personal runner id.

7. Run tests for specified compiler ./runtests.sh $(compiler)-$(compiler-ver)

  ./runtests.sh gcc-4.2.1

Boost (last edited 2010-08-23 12:21:45 by farid)