summaryrefslogtreecommitdiffstats
path: root/test/packaging
diff options
context:
space:
mode:
Diffstat (limited to 'test/packaging')
-rw-r--r--test/packaging/msi/file-placement.py126
-rw-r--r--test/packaging/msi/package.py83
-rw-r--r--test/packaging/option--package-type.py3
-rw-r--r--test/packaging/rpm/cleanup.py5
-rw-r--r--test/packaging/rpm/internationalization.py3
-rw-r--r--test/packaging/rpm/package.py3
-rw-r--r--test/packaging/rpm/tagging.py5
7 files changed, 125 insertions, 103 deletions
diff --git a/test/packaging/msi/file-placement.py b/test/packaging/msi/file-placement.py
index 08b0ba6..c2aaf35 100644
--- a/test/packaging/msi/file-placement.py
+++ b/test/packaging/msi/file-placement.py
@@ -37,17 +37,19 @@ test = TestSCons.TestSCons()
try:
from xml.dom.minidom import *
except ImportError:
- test.skip_test('Canoot import xml.dom.minidom skipping test\n')
+ test.skip_test('Cannot import xml.dom.minidom; skipping test\n')
wix = test.Environment().WhereIs('candle')
-if wix:
- #
- # Test the default directory layout
- #
- test.write( 'file1.exe', "file1" )
+if not wix:
+ test.skip_test("No 'candle' found; skipping test\n")
- test.write('SConstruct', """
+#
+# Test the default directory layout
+#
+test.write( 'file1.exe', "file1" )
+
+test.write('SConstruct', """
env = Environment(tools=['default', 'packaging'])
f1 = env.Install( '/bin/' , 'file1.exe' )
@@ -61,28 +63,28 @@ env.Package( NAME = 'foo',
)
""")
- test.run(arguments='', stderr = None)
+test.run(arguments='', stderr = None)
- dom = parse( test.workpath( 'foo-1.2.wxs' ) )
- dirs = dom.getElementsByTagName( 'Directory' )
+dom = parse( test.workpath( 'foo-1.2.wxs' ) )
+dirs = dom.getElementsByTagName( 'Directory' )
- test.fail_test( not dirs[0].attributes['Name'].value == 'SourceDir' )
- test.fail_test( not dirs[1].attributes['Name'].value == 'PFiles' )
- test.fail_test( not dirs[2].attributes['Name'].value == 'NANOSOF1' )
- test.fail_test( not dirs[3].attributes['Name'].value == 'FOO-1.2' )
+test.fail_test( not dirs[0].attributes['Name'].value == 'SourceDir' )
+test.fail_test( not dirs[1].attributes['Name'].value == 'PFiles' )
+test.fail_test( not dirs[2].attributes['Name'].value == 'NANOSOF1' )
+test.fail_test( not dirs[3].attributes['Name'].value == 'FOO-1.2' )
- #
- # Try to put 7 files into 5 distinct directories of varying depth and overlapping count
- #
- test.write( 'file1.exe', "file1" )
- test.write( 'file2.exe', "file2" )
- test.write( 'file3.dll', "file3" )
- test.write( 'file4.dll', "file4" )
- test.write( 'file5.class', "file5" )
- test.write( 'file6.class', "file6" )
- test.write( 'file7.class', "file7" )
-
- test.write('SConstruct', """
+#
+# Try to put 7 files into 5 distinct directories of varying depth and overlapping count
+#
+test.write( 'file1.exe', "file1" )
+test.write( 'file2.exe', "file2" )
+test.write( 'file3.dll', "file3" )
+test.write( 'file4.dll', "file4" )
+test.write( 'file5.class', "file5" )
+test.write( 'file6.class', "file6" )
+test.write( 'file7.class', "file7" )
+
+test.write('SConstruct', """
env = Environment(tools=['default', 'packaging'])
f1 = env.Install( '/bin/' , 'file1.exe' )
f2 = env.Install( '/bin/' , 'file2.exe' )
@@ -103,35 +105,35 @@ env.Package( NAME = 'foo',
)
""")
- test.run(arguments='', stderr = None)
+test.run(arguments='', stderr = None)
- dom = parse( test.workpath( 'foo-1.2.wxs' ) )
- files = dom.getElementsByTagName( 'File' )
+dom = parse( test.workpath( 'foo-1.2.wxs' ) )
+files = dom.getElementsByTagName( 'File' )
- test.fail_test( not files[0].parentNode.parentNode.attributes['LongName'].value == 'bin' )
- test.fail_test( not files[1].parentNode.parentNode.attributes['LongName'].value == 'bin' )
- test.fail_test( not files[2].parentNode.parentNode.attributes['LongName'].value == 'lib' )
- test.fail_test( not files[3].parentNode.parentNode.attributes['LongName'].value == 'lib' )
-
- test.fail_test( not files[4].parentNode.parentNode.attributes['LongName'].value == 'teco' )
- test.fail_test( not files[4].parentNode.parentNode.parentNode.attributes['LongName'].value == 'edu' )
- test.fail_test( not files[4].parentNode.parentNode.parentNode.parentNode.attributes['LongName'].value == 'java' )
+test.fail_test( not files[0].parentNode.parentNode.attributes['LongName'].value == 'bin' )
+test.fail_test( not files[1].parentNode.parentNode.attributes['LongName'].value == 'bin' )
+test.fail_test( not files[2].parentNode.parentNode.attributes['LongName'].value == 'lib' )
+test.fail_test( not files[3].parentNode.parentNode.attributes['LongName'].value == 'lib' )
+
+test.fail_test( not files[4].parentNode.parentNode.attributes['LongName'].value == 'teco' )
+test.fail_test( not files[4].parentNode.parentNode.parentNode.attributes['LongName'].value == 'edu' )
+test.fail_test( not files[4].parentNode.parentNode.parentNode.parentNode.attributes['LongName'].value == 'java' )
- test.fail_test( not files[5].parentNode.parentNode.attributes['LongName'].value == 'teco' )
- test.fail_test( not files[5].parentNode.parentNode.parentNode.attributes['LongName'].value == 'java' )
+test.fail_test( not files[5].parentNode.parentNode.attributes['LongName'].value == 'teco' )
+test.fail_test( not files[5].parentNode.parentNode.parentNode.attributes['LongName'].value == 'java' )
- test.fail_test( not files[6].parentNode.parentNode.attributes['LongName'].value == 'tec' )
- test.fail_test( not files[6].parentNode.parentNode.parentNode.attributes['LongName'].value == 'java' )
+test.fail_test( not files[6].parentNode.parentNode.attributes['LongName'].value == 'tec' )
+test.fail_test( not files[6].parentNode.parentNode.parentNode.attributes['LongName'].value == 'java' )
- #
- # Test distinct directories put into distinct features
- #
- test.write( 'file1.exe', "file1" )
- test.write( 'file2.exe', "file2" )
- test.write( 'file3.dll', "file3" )
- test.write( 'file3-.dll', "file3" )
+#
+# Test distinct directories put into distinct features
+#
+test.write( 'file1.exe', "file1" )
+test.write( 'file2.exe', "file2" )
+test.write( 'file3.dll', "file3" )
+test.write( 'file3-.dll', "file3" )
- test.write('SConstruct', """
+test.write('SConstruct', """
env = Environment(tools=['default', 'packaging'])
f1 = env.Install( '/bin/' , 'file1.exe' )
f2 = env.Install( '/bin/' , 'file2.exe' )
@@ -152,21 +154,19 @@ env.Package( NAME = 'foo',
)
""")
- test.run(arguments='', stderr = None)
-
- dom = parse( test.workpath( 'foo-1.2.wxs' ) )
- features = dom.getElementsByTagName( 'Feature' )
+test.run(arguments='', stderr = None)
- test.fail_test( not features[1].attributes['Title'].value == 'Core Part' )
- componentrefs = features[1].getElementsByTagName( 'ComponentRef' )
- test.fail_test( not componentrefs[0].attributes['Id'].value == 'file1.exe' )
- test.fail_test( not componentrefs[1].attributes['Id'].value == 'file2.exe' )
- test.fail_test( not componentrefs[2].attributes['Id'].value == 'file3.dll1' )
+dom = parse( test.workpath( 'foo-1.2.wxs' ) )
+features = dom.getElementsByTagName( 'Feature' )
- test.fail_test( not features[2].attributes['Title'].value == 'Java Part' )
- componentrefs = features[2].getElementsByTagName( 'ComponentRef' )
- test.fail_test( not componentrefs[0].attributes['Id'].value == 'file3.dll' )
+test.fail_test( not features[1].attributes['Title'].value == 'Core Part' )
+componentrefs = features[1].getElementsByTagName( 'ComponentRef' )
+test.fail_test( not componentrefs[0].attributes['Id'].value == 'file1.exe' )
+test.fail_test( not componentrefs[1].attributes['Id'].value == 'file2.exe' )
+test.fail_test( not componentrefs[2].attributes['Id'].value == 'file3.dll1' )
-else:
- test.no_result()
+test.fail_test( not features[2].attributes['Title'].value == 'Java Part' )
+componentrefs = features[2].getElementsByTagName( 'ComponentRef' )
+test.fail_test( not componentrefs[0].attributes['Id'].value == 'file3.dll' )
+test.pass_test()
diff --git a/test/packaging/msi/package.py b/test/packaging/msi/package.py
index 24bd26d..e6ce668 100644
--- a/test/packaging/msi/package.py
+++ b/test/packaging/msi/package.py
@@ -42,14 +42,16 @@ except ImportError:
wix = test.Environment().WhereIs('candle')
-if wix:
- #
- # build with minimal tag set and test for the given package meta-data
- #
- test.write( 'file1.exe', "file1" )
- test.write( 'file2.exe', "file2" )
-
- test.write('SConstruct', """
+if not wix:
+ test.skip_test("No 'candle' found; skipping test\n")
+
+#
+# build with minimal tag set and test for the given package meta-data
+#
+test.write( 'file1.exe', "file1" )
+test.write( 'file2.exe', "file2" )
+
+test.write('SConstruct', """
import os
env = Environment(tools=['default', 'packaging'])
@@ -69,32 +71,32 @@ env.Package( NAME = 'foo',
env.Alias( 'install', [ f1, f2 ] )
""")
- test.run(arguments='', stderr = None)
+test.run(arguments='', stderr = None)
- test.must_exist( 'foo-1.2.wxs' )
- test.must_exist( 'foo-1.2.msi' )
+test.must_exist( 'foo-1.2.wxs' )
+test.must_exist( 'foo-1.2.msi' )
- dom = parse( test.workpath( 'foo-1.2.wxs' ) )
- Product = dom.getElementsByTagName( 'Product' )[0]
- Package = dom.getElementsByTagName( 'Package' )[0]
+dom = parse( test.workpath( 'foo-1.2.wxs' ) )
+Product = dom.getElementsByTagName( 'Product' )[0]
+Package = dom.getElementsByTagName( 'Package' )[0]
- test.fail_test( not Product.attributes['Manufacturer'].value == 'Nanosoft_2000' )
- test.fail_test( not Product.attributes['Version'].value == '1.2' )
- test.fail_test( not Product.attributes['Name'].value == 'foo' )
+test.fail_test( not Product.attributes['Manufacturer'].value == 'Nanosoft_2000' )
+test.fail_test( not Product.attributes['Version'].value == '1.2' )
+test.fail_test( not Product.attributes['Name'].value == 'foo' )
- test.fail_test( not Package.attributes['Description'].value == 'balalalalal' )
- test.fail_test( not Package.attributes['Comments'].value == 'this should be reallly really long' )
+test.fail_test( not Package.attributes['Description'].value == 'balalalalal' )
+test.fail_test( not Package.attributes['Comments'].value == 'this should be reallly really long' )
- #
- # build with file tags resulting in multiple components in the msi installer
- #
- test.write( 'file1.exe', "file1" )
- test.write( 'file2.exe', "file2" )
- test.write( 'file3.html', "file3" )
- test.write( 'file4.dll', "file4" )
- test.write( 'file5.dll', "file5" )
+#
+# build with file tags resulting in multiple components in the msi installer
+#
+test.write( 'file1.exe', "file1" )
+test.write( 'file2.exe', "file2" )
+test.write( 'file3.html', "file3" )
+test.write( 'file4.dll', "file4" )
+test.write( 'file5.dll', "file5" )
- test.write('SConstruct', """
+test.write('SConstruct', """
import os
env = Environment(tools=['default', 'packaging'])
f1 = env.Install( '/usr/' , 'file1.exe' )
@@ -121,18 +123,19 @@ env.Package( NAME = 'foo',
env.Alias( 'install', [ f1, f2, f3, f4, f5 ] )
""")
- test.run(arguments='', stderr = None)
+test.run(arguments='', stderr = None)
+
+test.must_exist( 'foo-1.2.wxs' )
+test.must_exist( 'foo-1.2.msi' )
+
+dom = parse( test.workpath( 'foo-1.2.wxs' ) )
+elements = dom.getElementsByTagName( 'Feature' )
+test.fail_test( not elements[1].attributes['Title'].value == 'Main Part' )
+test.fail_test( not elements[2].attributes['Title'].value == 'Documentation' )
+test.fail_test( not elements[3].attributes['Title'].value == 'Another Feature' )
+test.fail_test( not elements[3].attributes['Description'].value == 'with a long description' )
+test.fail_test( not elements[4].attributes['Title'].value == 'Java Part' )
- test.must_exist( 'foo-1.2.wxs' )
- test.must_exist( 'foo-1.2.msi' )
- dom = parse( test.workpath( 'foo-1.2.wxs' ) )
- elements = dom.getElementsByTagName( 'Feature' )
- test.fail_test( not elements[1].attributes['Title'].value == 'Main Part' )
- test.fail_test( not elements[2].attributes['Title'].value == 'Documentation' )
- test.fail_test( not elements[3].attributes['Title'].value == 'Another Feature' )
- test.fail_test( not elements[3].attributes['Description'].value == 'with a long description' )
- test.fail_test( not elements[4].attributes['Title'].value == 'Java Part' )
-else:
- test.no_result()
+test.pass_test()
diff --git a/test/packaging/option--package-type.py b/test/packaging/option--package-type.py
index 68a075c..00a569e 100644
--- a/test/packaging/option--package-type.py
+++ b/test/packaging/option--package-type.py
@@ -35,6 +35,8 @@ _python_ = TestSCons._python_
test = TestSCons.TestSCons()
+rpm_build_root = test.workpath('rpm_build_root')
+
scons = test.program
rpm = test.Environment().WhereIs('rpm')
@@ -50,6 +52,7 @@ test.write('SConstruct', """
# -*- coding: iso-8859-15 -*-
env=Environment(tools=['default', 'packaging'])
env.Prepend(RPM = 'TAR_OPTIONS=--wildcards ')
+env.Append(RPMFLAGS = r' --buildroot %(rpm_build_root)s')
prog=env.Install( '/bin', 'main' )
env.Package( NAME = 'foo',
VERSION = '1.2.3',
diff --git a/test/packaging/rpm/cleanup.py b/test/packaging/rpm/cleanup.py
index 26bf79b..5472fbb 100644
--- a/test/packaging/rpm/cleanup.py
+++ b/test/packaging/rpm/cleanup.py
@@ -45,6 +45,8 @@ rpm = test.Environment().WhereIs('rpm')
if not rpm:
test.skip_test('rpm not found, skipping test\n')
+rpm_build_root = test.workpath('rpm_build_root')
+
test.subdir('src')
test.write( [ 'src', 'main.c' ], r"""
@@ -57,7 +59,10 @@ int main( int argc, char* argv[] )
test.write('SConstruct', """
env=Environment(tools=['default', 'packaging'])
+env['ENV']['RPM_BUILD_ROOT'] = r'%(rpm_build_root)s/foo-1.2.3'
+
env.Prepend(RPM = 'TAR_OPTIONS=--wildcards ')
+env.Append(RPMFLAGS = r' --buildroot %(rpm_build_root)s')
prog = env.Install( '/bin/' , Program( 'src/main.c') )
diff --git a/test/packaging/rpm/internationalization.py b/test/packaging/rpm/internationalization.py
index 66c2291..af0bc75 100644
--- a/test/packaging/rpm/internationalization.py
+++ b/test/packaging/rpm/internationalization.py
@@ -47,6 +47,8 @@ rpm = test.Environment().WhereIs('rpm')
if not rpm:
test.skip_test('rpm not found, skipping test\n')
+rpm_build_root = test.workpath('rpm_build_root')
+
#
# test INTERNATIONAL PACKAGE META-DATA
#
@@ -64,6 +66,7 @@ import os
env = Environment(tools=['default', 'packaging'])
env.Prepend(RPM = 'TAR_OPTIONS=--wildcards ')
+env.Append(RPMFLAGS = r' --buildroot %(rpm_build_root)s')
prog = env.Install( '/bin', Program( 'main.c' ) )
diff --git a/test/packaging/rpm/package.py b/test/packaging/rpm/package.py
index a5f9f0f..2a37265 100644
--- a/test/packaging/rpm/package.py
+++ b/test/packaging/rpm/package.py
@@ -43,6 +43,8 @@ rpm = test.Environment().WhereIs('rpm')
if not rpm:
test.skip_test('rpm not found, skipping test\n')
+rpm_build_root = test.workpath('rpm_build_root')
+
test.subdir('src')
test.write( [ 'src', 'main.c' ], r"""
@@ -58,6 +60,7 @@ import os
env=Environment(tools=['default', 'packaging'])
env.Prepend(RPM = 'TAR_OPTIONS=--wildcards ')
+env.Append(RPMFLAGS = r' --buildroot %(rpm_build_root)s')
prog = env.Install( '/bin/' , Program( 'src/main.c') )
diff --git a/test/packaging/rpm/tagging.py b/test/packaging/rpm/tagging.py
index 198799a..d0fce83 100644
--- a/test/packaging/rpm/tagging.py
+++ b/test/packaging/rpm/tagging.py
@@ -45,6 +45,8 @@ rpm = test.Environment().WhereIs('rpm')
if not rpm:
test.skip_test('rpm not found, skipping test\n')
+rpm_build_root = test.workpath('rpm_build_root')
+
#
# Test adding an attr tag to the built program.
#
@@ -61,7 +63,10 @@ test.write('SConstruct', """
import os
env = Environment(tools=['default', 'packaging'])
+
env.Prepend(RPM = 'TAR_OPTIONS=--wildcards ')
+env.Append(RPMFLAGS = r' --buildroot %(rpm_build_root)s')
+
install_dir= os.path.join( ARGUMENTS.get('prefix', '/'), 'bin/' )
prog_install = env.Install( install_dir , Program( 'src/main.c' ) )
env.Tag( prog_install, UNIX_ATTR = '(0755, root, users)' )