aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJussi Pakkanen <jpakkane@gmail.com>2014-05-02 01:19:29 +0300
committerJussi Pakkanen <jpakkane@gmail.com>2014-05-02 01:19:29 +0300
commitf34be394b00da7cce28374cdfa1c3092be2ef82b (patch)
treec9d4087cf39f59055cf307ffb8dc7b910a1e12e7
parent0f98361117a7ff04bfe722cec3af4657067885f1 (diff)
downloadmeson-f34be394b00da7cce28374cdfa1c3092be2ef82b.zip
meson-f34be394b00da7cce28374cdfa1c3092be2ef82b.tar.gz
meson-f34be394b00da7cce28374cdfa1c3092be2ef82b.tar.bz2
Introspector can print out test info.
-rwxr-xr-xmesonintrospect.py30
1 files changed, 25 insertions, 5 deletions
diff --git a/mesonintrospect.py b/mesonintrospect.py
index dc1b2900..9bb4892 100755
--- a/mesonintrospect.py
+++ b/mesonintrospect.py
@@ -27,10 +27,16 @@ from optparse import OptionParser
import sys, os
parser = OptionParser()
-parser.add_option('--list-targets', action='store_true', dest='list_targets', default=False)
-parser.add_option('--target-files', action='store', dest='target_files', default=None)
-parser.add_option('--buildsystem-files', action='store_true', dest='buildsystem_files', default=False)
-parser.add_option('--buildoptions', action='store_true', dest='buildoptions', default=False)
+parser.add_option('--targets', action='store_true', dest='list_targets', default=False,
+ help='List top level targets.')
+parser.add_option('--target-files', action='store', dest='target_files', default=None,
+ help='List source files for a given target.')
+parser.add_option('--buildsystem-files', action='store_true', dest='buildsystem_files', default=False,
+ help='List files that make up the build system.')
+parser.add_option('--buildoptions', action='store_true', dest='buildoptions', default=False,
+ help='List all build options.')
+parser.add_option('--tests', action='store_true', dest='tests', default=False,
+ help='List all unit tests.')
def list_targets(coredata, builddata):
tlist = []
@@ -114,12 +120,22 @@ def list_buildsystem_files(coredata, builddata):
src_dir = builddata.environment.get_source_dir()
# I feel dirty about this. But only slightly.
filelist = []
- for root, dirs, files in os.walk(src_dir):
+ for root, _, files in os.walk(src_dir):
for f in files:
if f == 'meson.build' or f == 'meson_options.txt':
filelist.append(os.path.relpath(os.path.join(root, f), src_dir))
print(json.dumps(filelist))
+def list_tests(testdata):
+ result = []
+ for t in testdata:
+ to = {}
+ to['cmd'] = [t.fname] + t.cmd_args
+ to['env'] = t.env
+ to['name'] = t.name
+ result.append(to)
+ print(json.dumps(result))
+
if __name__ == '__main__':
(options, args) = parser.parse_args()
if len(args) > 1:
@@ -131,8 +147,10 @@ if __name__ == '__main__':
bdir = ''
corefile = os.path.join(bdir, 'meson-private/coredata.dat')
buildfile = os.path.join(bdir, 'meson-private/build.dat')
+ testfile = os.path.join(bdir, 'meson-private/meson_test_setup.dat')
coredata = pickle.load(open(corefile, 'rb'))
builddata = pickle.load(open(buildfile, 'rb'))
+ testdata = pickle.load(open(testfile, 'rb'))
if options.list_targets:
list_targets(coredata, builddata)
elif options.target_files is not None:
@@ -141,6 +159,8 @@ if __name__ == '__main__':
list_buildsystem_files(coredata, builddata)
elif options.buildoptions:
list_buildoptions(coredata, builddata)
+ elif options.tests:
+ list_tests(testdata)
else:
print('No command specified')
sys.exit(1)