waf

FORK: waf with some random patches
git clone https://git.neptards.moe/neptards/waf.git
Log | Files | Refs | README

wscript (1615B)


      1 #! /usr/bin/env python
      2 
      3 from waflib import Utils, Build, Logs
      4 import os
      5 
      6 GRP = os.environ.get('WAF_TEST_GROUP', 'adm')
      7 
      8 def test_chown(bld):
      9 	def create_and_chown(tsk):
     10 		tsk.outputs[0].write('test')
     11 		Utils.lchown(tsk.outputs[0].abspath(), -1, GRP)
     12 		bld.conf.env.CAN_CHOWN = True
     13 	bld(rule=create_and_chown, target='foo.txt', always=True)
     14 
     15 def test_grp(bld):
     16 	def check_path(tsk):
     17 		import grp
     18 		entry = grp.getgrnam(GRP)
     19 		assert entry[0] == GRP
     20 		bld.conf.env.CAN_GRP = True
     21 	bld(rule=check_path, always=True)
     22 
     23 def test_chown_install(bld):
     24 	bld.is_install = Build.INSTALL
     25 
     26 	dest_file = bld.bldnode.make_node('test/foo')
     27 	dest_link = bld.bldnode.make_node('test/foo_link')
     28 
     29 	tmpfile = bld.bldnode.make_node('foo.txt')
     30 	tmpfile.write('this is a test')
     31 
     32 	bld.install_as(dest_file,
     33 		tmpfile,
     34 		install_group=GRP)
     35 	bld.symlink_as(dest_link,
     36 		'foo',
     37 		install_group=GRP)
     38 
     39 	bld.add_group()
     40 
     41 	def check_path(tsk):
     42 		import grp
     43 		gid = grp.getgrnam(GRP)[2]
     44 		assert os.stat(dest_file.abspath()).st_gid == gid
     45 		assert os.stat(dest_link.abspath()).st_gid == gid
     46 	bld(rule=check_path, always=True)
     47 
     48 def configure(conf):
     49 	conf.test(build_fun=test_grp,
     50 		msg='Checking for the python module grp',
     51 		okmsg='ok',
     52 		errmsg='grp is missing',
     53 		mandatory=False)
     54 	if not conf.env.CAN_GRP:
     55 		return
     56 
     57 	conf.test(build_fun=test_chown,
     58 		msg='Checking for Utils.lchown',
     59 		okmsg='ok',
     60 		errmsg='chown does not seem to work',
     61 		mandatory=False)
     62 	if not conf.env.CAN_CHOWN:
     63 		return
     64 
     65 	conf.test(build_fun=test_chown_install,
     66 		msg='Testing install_group="adm"',
     67 		okmsg='ok',
     68 		errmsg='there is a regression')
     69 
     70 def build(bld):
     71 	pass
     72