this script runs gst-inspect on all built elements and checks for warnings or bad...
authorSteve Baker <steve@stevebaker.org>
Sun, 14 Apr 2002 09:55:20 +0000 (09:55 +0000)
committerSteve Baker <steve@stevebaker.org>
Sun, 14 Apr 2002 09:55:20 +0000 (09:55 +0000)
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 [new file with mode: 0755]

diff --git a/tools/gst-inspect-check b/tools/gst-inspect-check
new file mode 100755 (executable)
index 0000000..8f16ee7
--- /dev/null
@@ -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 ();
+