summaryrefslogtreecommitdiff
path: root/libctf/testsuite/libctf-regression
diff options
context:
space:
mode:
Diffstat (limited to 'libctf/testsuite/libctf-regression')
-rw-r--r--libctf/testsuite/libctf-regression/pptrtab-a.c2
-rw-r--r--libctf/testsuite/libctf-regression/pptrtab-b.c3
-rw-r--r--libctf/testsuite/libctf-regression/pptrtab.c10
3 files changed, 13 insertions, 2 deletions
diff --git a/libctf/testsuite/libctf-regression/pptrtab-a.c b/libctf/testsuite/libctf-regression/pptrtab-a.c
index e9f656a0bc8..65414877114 100644
--- a/libctf/testsuite/libctf-regression/pptrtab-a.c
+++ b/libctf/testsuite/libctf-regression/pptrtab-a.c
@@ -1,3 +1,5 @@
typedef long a_t;
+typedef long b_t;
a_t *a;
+b_t ignore2;
diff --git a/libctf/testsuite/libctf-regression/pptrtab-b.c b/libctf/testsuite/libctf-regression/pptrtab-b.c
index 6142f194c19..e458021efb1 100644
--- a/libctf/testsuite/libctf-regression/pptrtab-b.c
+++ b/libctf/testsuite/libctf-regression/pptrtab-b.c
@@ -1,4 +1,5 @@
typedef long a_t;
+typedef long b_t;
a_t b;
-
+b_t ignore1;
diff --git a/libctf/testsuite/libctf-regression/pptrtab.c b/libctf/testsuite/libctf-regression/pptrtab.c
index 5d3c2f2ee93..fe1b8fe2b43 100644
--- a/libctf/testsuite/libctf-regression/pptrtab.c
+++ b/libctf/testsuite/libctf-regression/pptrtab.c
@@ -23,13 +23,18 @@ main (int argc, char *argv[])
goto open_err;
/* Make sure we can look up a_t * by name in all non-parent dicts, even though
- the a_t * and the type it points to are in distinct dicts. */
+ the a_t * and the type it points to are in distinct dicts; make sure we
+ cannot look up b_t *. */
while ((fp = ctf_archive_next (ctf, &i, &arcname, 1, &err)) != NULL)
{
if ((type = ctf_lookup_by_name (fp, "a_t *")) == CTF_ERR)
goto err;
+ if ((ctf_lookup_by_name (fp, "b_t *")) != CTF_ERR ||
+ ctf_errno (fp) != ECTF_NOTYPE)
+ goto noerr;
+
if (ctf_type_reference (fp, type) == CTF_ERR)
goto err;
@@ -51,4 +56,7 @@ main (int argc, char *argv[])
err:
fprintf (stderr, "Lookup failed in %s: %s\n", arcname, ctf_errmsg (ctf_errno (fp)));
return 1;
+ noerr:
+ fprintf (stderr, "Lookup unexpectedly succeeded in %s\n", arcname);
+ return 1;
}