xfs: test that reflink forces the log if mounted with wsync
[xfstests-dev.git] / lsqa.pl
diff --git a/lsqa.pl b/lsqa.pl
index d43afd28a5dc86b323c57d23aacdf6339cc53789..8ca1167f845c79d671ae667b7cfe1bc1a397a714 100755 (executable)
--- a/lsqa.pl
+++ b/lsqa.pl
@@ -1,11 +1,20 @@
 #!/usr/bin/perl -w
+# SPDX-License-Identifier: GPL-2.0
+# Copyright (c) 2008 Silicon Graphics, Inc.  All Rights Reserved.
+#
+# Print headers of given tests
+# Accepted parameter types:
+# - nothing - list all tests from all subdirectories in tests/*
+# - tests/DIR - list all tests from DIR
+# - tests/DIR/123 - show header from single test
+
 use strict;
 
 use Getopt::Long;
 
 sub help();
 sub get_qa_header($);
-sub get_qa_tests();
+sub get_qa_tests;
 
 my %opt;
 
@@ -27,8 +36,19 @@ if ($opt{'help'}) {
     die help();
 }
 
-my @qatests = map {sprintf("%03d", $_)} @ARGV;
-@qatests = get_qa_tests() unless (@qatests);
+my @qatests;
+
+if (!@ARGV) {
+    my $d="tests";
+    opendir(DIR, $d);
+    map { push @qatests,get_qa_tests("$d/$_") if -d "$d/$_" } readdir(DIR);
+    closedir(DIR);
+}
+
+foreach (@ARGV) {
+    push @qatests,$_ if -f && /\d{3}$/;
+    push @qatests,get_qa_tests($_) if -d;
+}
 
 foreach (@qatests) {
     my @h = get_qa_header($_);
@@ -75,9 +95,11 @@ sub get_qa_header($) {
     open(my $FH, $f) || die "couldn't open '$f': $!";
     while (<$FH>) {
        #ignore.
-       m/^#\!/                 and next; #shebang
-       m/^#\s*\-{10}/          and last; #dashed lines
-       m/^#\s*copyright/i      and last; #copyright lines
+       m/^#\!/                 and next; # shebang
+       m/^# SPDX/i             and next; # SPDX tags
+       m/^# Copyright/i        and next; # Copyright tags
+       m/^#\s*\-{10}/          and last; # dashed lines
+       m/^seq/i                and last; # test start
 
        s/^# *//;
 
@@ -87,13 +109,11 @@ sub get_qa_header($) {
     return @l;
 }
 
-sub get_qa_tests() {
+sub get_qa_tests {
     my $d = shift || $ENV{'PWD'};
 
     opendir(my $DIR, $d) || die "can't opendir $d: $!";
-    my @qa = grep {m/^\d\d\d$/ && -f "$d/$_" } readdir($DIR);
+    my @qa = sort grep { m/^\d\d\d$/ && -f "$d/$_" } readdir($DIR);
     closedir($DIR);
-
-    return @qa;
+    return map { $_ = "$d/$_" } @qa;
 }
-