aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gold/ChangeLog7
-rw-r--r--gold/testsuite/Makefile.am11
-rwxr-xr-xgold/testsuite/incremental_test.sh35
-rw-r--r--gold/testsuite/incremental_test_1.c21
-rw-r--r--gold/testsuite/incremental_test_2.c25
5 files changed, 99 insertions, 0 deletions
diff --git a/gold/ChangeLog b/gold/ChangeLog
index 0c6f37f..7368334 100644
--- a/gold/ChangeLog
+++ b/gold/ChangeLog
@@ -1,3 +1,10 @@
+2009-12-02 Rafael Avila de Espindola <espindola@google.com>
+
+ * testsuite/Makefile.am: Add the incremental_test.sh test.
+ * testsuite/incremental_test.sh: New.
+ * testsuite/incremental_test_1.c: New.
+ * testsuite/incremental_test_2.c: New.
+
2009-12-01 Rafael Avila de Espindola <espindola@google.com>
* incremental-dump.cc (main): Fix typos.
diff --git a/gold/testsuite/Makefile.am b/gold/testsuite/Makefile.am
index 0351828..54e8843 100644
--- a/gold/testsuite/Makefile.am
+++ b/gold/testsuite/Makefile.am
@@ -105,6 +105,17 @@ flagstest_debug.o: constructor_test.cc
flagstest_ndebug.o: constructor_test.cc
$(CXXCOMPILE) -O0 -c -o $@ $<
+check_SCRIPTS += incremental_test.sh
+check_DATA += incremental_test.stdout
+MOSTLYCLEANFILES += incremental_test
+incremental_test_1.o: incremental_test_1.c
+ $(COMPILE) -O0 -c -ffunction-sections -g -o $@ $<
+incremental_test_2.o: incremental_test_2.c
+ $(COMPILE) -O0 -c -ffunction-sections -g -o $@ $<
+incremental_test: incremental_test_1.o incremental_test_2.o gcctestdir/ld
+ $(LINK) -Bgcctestdir/ -Wl,-incremental incremental_test_1.o incremental_test_2.o -Wl,-debug 2> incremental_test.cmdline
+incremental_test.stdout: incremental_test ../incremental-dump
+ ../incremental-dump incremental_test > $@
check_SCRIPTS += gc_comdat_test.sh
check_DATA += gc_comdat_test.stdout
diff --git a/gold/testsuite/incremental_test.sh b/gold/testsuite/incremental_test.sh
new file mode 100755
index 0000000..8da60e0
--- /dev/null
+++ b/gold/testsuite/incremental_test.sh
@@ -0,0 +1,35 @@
+#!/bin/sh
+
+# incremental_test.sh -- test that incremental linking information is correct.
+
+# Copyright 2009 Free Software Foundation, Inc.
+# Written by Rafael Avila de Espindola <espindola@google.com>
+
+# This file is part of gold.
+
+# This program is free software; you can redistribute it and/or modify
+# it under the terms of the GNU General Public License as published by
+# the Free Software Foundation; either version 3 of the License, or
+# (at your option) any later version.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+# MA 02110-1301, USA.
+
+set -e
+cat incremental_test.cmdline | grep "gcctestdir/ld " | cut -d ' ' -f 2- > \
+ actual
+
+cat incremental_test.stdout | grep "Link command line" | cut -d : -f 2- | \
+ cut -d ' ' -f 3- | sed "s/'//g" > recorded
+
+diff actual recorded
+rm actual recorded
+
+exit 0 \ No newline at end of file
diff --git a/gold/testsuite/incremental_test_1.c b/gold/testsuite/incremental_test_1.c
new file mode 100644
index 0000000..9783515
--- /dev/null
+++ b/gold/testsuite/incremental_test_1.c
@@ -0,0 +1,21 @@
+// Copyright 2009 Free Software Foundation, Inc.
+// Written by Rafael Avila de Espindola <espindola@google.com>
+
+// This file is part of gold.
+
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3 of the License, or
+// (at your option) any later version.
+
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+// MA 02110-1301, USA.
+
+int a;
diff --git a/gold/testsuite/incremental_test_2.c b/gold/testsuite/incremental_test_2.c
new file mode 100644
index 0000000..050986e
--- /dev/null
+++ b/gold/testsuite/incremental_test_2.c
@@ -0,0 +1,25 @@
+// Copyright 2009 Free Software Foundation, Inc.
+// Written by Rafael Avila de Espindola <espindola@google.com>
+
+// This file is part of gold.
+
+// This program is free software; you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation; either version 3 of the License, or
+// (at your option) any later version.
+
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this program; if not, write to the Free Software
+// Foundation, Inc., 51 Franklin Street - Fifth Floor, Boston,
+// MA 02110-1301, USA.
+
+int b;
+
+int main(void) {
+ return 0;
+}