From e9db40dd53c0456e9885f10dc697d03ffb7f3724 Mon Sep 17 00:00:00 2001 From: Steve Baker Date: Sun, 14 Apr 2002 09:55:20 +0000 Subject: this script runs gst-inspect on all built elements and checks for warnings or bad exit codes. Original commit message from CVS: this script runs gst-inspect on all built elements and checks for warnings or bad exit codes. It requires a gst-inspect to be in your PATH. more checking is probably needed for valid gst-inspect output. The output format of gst-inspect will be changed slightly to make parsing the output possible. --- tools/gst-inspect-check | 73 +++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) create mode 100755 tools/gst-inspect-check (limited to 'tools') diff --git a/tools/gst-inspect-check b/tools/gst-inspect-check new file mode 100755 index 00000000..8f16ee77 --- /dev/null +++ b/tools/gst-inspect-check @@ -0,0 +1,73 @@ +#!/usr/bin/perl -w + +# checks all built plugins by running gst-inspect on each element +# and checking for warnings on stderr + +### packages + +use File::Basename; + +my $num_warnings = 0; + +sub check_all_elements +{ + #send stderr to /dev/null + my $command = "gst-inspect 2>/dev/null"; + my @lines = `$command`; + + while ($_ = shift(@lines)){ + my @matches = m/^\w+\s+element:\s+(\w+):/g; + if(@matches){ + check_element($matches[0]); + } + } + if ($num_warnings > 0){ + print("there are $num_warnings warnings to be fixed\n"); + return -1; + } + return 0; +} + +sub check_element($) +{ + my ($element) = @_; + print "running inspect on $element\n"; + + # capture stderr, send stdout to /dev/null + my $command = "gst-inspect $element 2>&1 1>/dev/null"; + + my @lines = `$command`; + + while ($_ = shift(@lines)){ + # ignore INFO lines, they are ok + if (! /INFO/){ + print $_; + + # do this to ignore empty lines + if (length > 1){ + $num_warnings++; + } + } + } + system("gst-inspect $element 2>/dev/null 1>/dev/null"); + if ($? != 0){ + my $exit_value = $? >> 8; + my $signal_num = $? & 127; + my $dumped_core = $? & 128; + if ($exit_value){ + print("error value on exit: $exit_value\n"); + } + if ($signal_num){ + print("signal caused exit: $signal_num\n"); + } + if ($dumped_core){ + print("dumped core: $dumped_core\n"); + } + $num_warnings++ + } +} + +### main + +exit check_all_elements (); + -- cgit