mirror of https://gitlab.com/ita1024/waf
				
				
				
			
			You cannot select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
	
	
		
			79 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Python
		
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Python
		
	
#! /usr/bin/env python
 | 
						|
# encoding: utf-8
 | 
						|
# Federico Pellegrin, 2019 (fedepell)
 | 
						|
 | 
						|
#
 | 
						|
# Simple script to demonstrate integration of Java Unit testing inside
 | 
						|
# standard waf_unit_test using either TestNG or JUnit
 | 
						|
#
 | 
						|
# try:
 | 
						|
#   waf configure --jtpath=/usr/share/java/testng.jar:/usr/share/java/jcommander.jar clean build
 | 
						|
 | 
						|
def test_results(bld):
 | 
						|
	"""
 | 
						|
	Custom post- function that prints out test results.
 | 
						|
	"""
 | 
						|
	lst = getattr(bld, 'utest_results', [])
 | 
						|
	if not lst:
 | 
						|
		return
 | 
						|
	for result in lst:
 | 
						|
		print(result.out.decode('utf-8'))
 | 
						|
		print(result.err.decode('utf-8'))
 | 
						|
 | 
						|
 | 
						|
def options(opt):
 | 
						|
	opt.load('java waf_unit_test javatest')
 | 
						|
	opt.load('compiler_c')
 | 
						|
 | 
						|
def configure(conf):
 | 
						|
	conf.load('java javatest')
 | 
						|
	conf.load('compiler_c')
 | 
						|
	conf.check_jni_headers()
 | 
						|
 | 
						|
def build(bld):
 | 
						|
	bld(features = 'javac',
 | 
						|
		name = 'mainprog',
 | 
						|
		srcdir     = 'src/', # folder containing the sources to compile
 | 
						|
		outdir     = 'src', # folder where to output the classes (in the build directory)
 | 
						|
		sourcepath = ['src'],
 | 
						|
		basedir    = 'src', # folder containing the classes and other files to package (must match outdir)
 | 
						|
	)
 | 
						|
 | 
						|
 | 
						|
	bld(features = 'javac javatest',
 | 
						|
		srcdir     = 'test/', # folder containing the sources to compile
 | 
						|
		outdir     = 'test', # folder where to output the classes (in the build directory)
 | 
						|
		sourcepath = ['test'],
 | 
						|
		classpath  = [ 'src' ],
 | 
						|
		basedir    = 'test', # folder containing the classes and other files to package (must match outdir)
 | 
						|
		use = ['JAVATEST', 'mainprog'],
 | 
						|
		ut_str = 'java -cp ${CLASSPATH} ${JTRUNNER} ${SRC}',
 | 
						|
		jtest_source = bld.path.ant_glob('test/*.xml'),
 | 
						|
		# For JUnit do first JUnit configuration and no need to use jtest_source:
 | 
						|
		# ut_str = 'java -cp ${CLASSPATH} ${JTRUNNER} [TestClass]',
 | 
						|
	)
 | 
						|
 | 
						|
 | 
						|
	# Demonstrate correct handling also of dependency to non-java tasks (see !2257)
 | 
						|
	bld(name='stjni', features='javac jar', srcdir='jni/java', outdir='jni/java', basedir='jni/java', destfile='stringUtils.jar')
 | 
						|
 | 
						|
	bld.shlib(source   = 'jni/jni/source/StringUtils.c',
 | 
						|
		includes = 'jni/jni/include',
 | 
						|
		target   = 'jni/stringUtils',
 | 
						|
		uselib   = 'JAVA')
 | 
						|
 | 
						|
	bld(features = 'javac javatest',
 | 
						|
		srcdir     = 'jni/test/', # folder containing the sources to compile
 | 
						|
		outdir     = 'jni/test', # folder where to output the classes (in the build directory)
 | 
						|
		sourcepath = ['jni/test'],
 | 
						|
		classpath  = [ 'jni/src' ],
 | 
						|
		basedir    = 'jni/test', # folder containing the classes and other files to package (must match outdir)
 | 
						|
		use = ['JAVATEST', 'stjni', 'jni/stringUtils'],
 | 
						|
		ut_str = 'java -cp ${CLASSPATH} ${JTRUNNER} ${SRC}',
 | 
						|
		jtest_source = bld.path.ant_glob('jni/test/*.xml'),
 | 
						|
	)
 | 
						|
 | 
						|
 | 
						|
	bld.add_post_fun(test_results)
 | 
						|
 |