summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorSteve Baker <steve@stevebaker.org>2002-04-14 09:55:20 +0000
committerSteve Baker <steve@stevebaker.org>2002-04-14 09:55:20 +0000
commite9db40dd53c0456e9885f10dc697d03ffb7f3724 (patch)
tree13163587c0def16b19cf2af864e0ad72297da816 /tools
parente1f6397f766b74e334231b8ec891eaa995ac9fe8 (diff)
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.
Diffstat (limited to 'tools')
-rwxr-xr-xtools/gst-inspect-check73
1 files changed, 73 insertions, 0 deletions
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 ();
+