summary refs log tree commit diff
path: root/conform/conformtest.pl
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2001-08-18 11:55:52 +0000
committerUlrich Drepper <drepper@redhat.com>2001-08-18 11:55:52 +0000
commit9c777dfe8301cc0088917e35333d7db0064d68c8 (patch)
treede40825b83305d5fb753c839596bb863daf96537 /conform/conformtest.pl
parent4c3902f9880048f39b3be0534d6563bfc3522dd7 (diff)
downloadglibc-9c777dfe8301cc0088917e35333d7db0064d68c8.tar.gz
glibc-9c777dfe8301cc0088917e35333d7db0064d68c8.tar.xz
glibc-9c777dfe8301cc0088917e35333d7db0064d68c8.zip
Update.
2001-08-18  Ulrich Drepper  <drepper@redhat.com>

	* conform/conformtest.pl: Change namespace test to take #undef
	lines into account.

	* conform/data/netinet/in.h-data: Fix typo in allow-header line.

	* conform/data/sys/socket.h-data: Add sockatmark.
Diffstat (limited to 'conform/conformtest.pl')
-rw-r--r--conform/conformtest.pl53
1 files changed, 38 insertions, 15 deletions
diff --git a/conform/conformtest.pl b/conform/conformtest.pl
index 5ae1cea45a..364e34d2a4 100644
--- a/conform/conformtest.pl
+++ b/conform/conformtest.pl
@@ -224,11 +224,19 @@ sub newtoken {
   if ($isknown{$token}) {
     ++$nknown;
   } else {
-    ++$nerrors;
-    if ($nerrors == 1) {
-      printf ("FAIL\n    " . "-" x 72 . "\n");
-    }
-    printf ("    Namespace violation: \"%s\"\n", $token);
+    $errors{$token} = 1;
+  }
+}
+
+
+sub removetoken {
+  my($token) = @_;
+  my($idx);
+
+  return if ($token =~ /^[0-9_]/ || $iskeyword{$token});
+
+  if (exists $errors{$token}) {
+    undef $errors{$token};
   }
 }
 
@@ -243,14 +251,15 @@ sub checknamespace {
   print TESTFILE "#include <$h>\n";
   close (TESTFILE);
 
-  $nerrors = 0;
+  undef %errors;
   $nknown = 0;
   open (CONTENT, "$CC $CFLAGS{$dialect} -E $fnamebase.c -P -Wp,-dN | sed -e '/^# [1-9]/d' -e '/^[[:space:]]*\$/d' |");
   loop: while (<CONTENT>) {
-    next loop if (/^#undef /);
     chop;
     if (/^#define (.*)/) {
       newtoken ($1, @allow);
+    } elsif (/^#undef (.*)/) {
+      removetoken ($1);
     } else {
       # We have to tokenize the line.
       my($str) = $_;
@@ -266,14 +275,28 @@ sub checknamespace {
   }
   close (CONTENT);
   unlink "$fnamebase.c";
-  if ($nerrors != 0) {
-    printf ("    " . "-" x 72 . "\n");
-    ++$errors;
-  } elsif ($nknown > 0) {
-    printf ("EXPECTED FAILURES\n");
-    ++$known;
-  } else {
-    printf ("OK\n");
+  $realerror = 0;
+  if ($#errors != 0) {
+    foreach $f (%errors) {
+      if ($errors{$f} == 1) {
+	if ($realerror == 0) {
+	  printf ("FAIL\n    " . "-" x 72 . "\n");
+	  $realerror = 1;
+	  ++$errors;
+	}
+	printf ("    Namespace violation: \"%s\"\n", $f);
+      }
+    }
+    printf ("    " . "-" x 72 . "\n") if ($realerror != 0);
+  }
+
+  if ($realerror == 0) {
+    if ($nknown > 0) {
+      printf ("EXPECTED FAILURES\n");
+      ++$known;
+    } else {
+      printf ("OK\n");
+    }
   }
 }