From 9070eaec97d9bf7eaa024058207af7c8d05cfaed Mon Sep 17 00:00:00 2001 From: Maksim Ivanov Date: Tue, 14 Jan 2025 14:57:29 +0000 Subject: [PATCH] Add tests for replace-dependent-typedef Add a few basic test cases for the "pass_clang" "replace-dependent-typedef" pass. --- clang_delta/Makefile.am | 1 + clang_delta/Makefile.in | 1 + .../tests/replace-dependent-typedef/test1.cc | 19 +++++++++++++++++++ 3 files changed, 21 insertions(+) create mode 100644 clang_delta/tests/replace-dependent-typedef/test1.cc diff --git a/clang_delta/Makefile.am b/clang_delta/Makefile.am index 9e27f9fa..bcb027be 100644 --- a/clang_delta/Makefile.am +++ b/clang_delta/Makefile.am @@ -419,6 +419,7 @@ EXTRA_DIST = \ tests/rename-fun/test1.h \ tests/rename-param/invalid.c \ tests/rename-var/rename-var.c \ + tests/replace-dependent-typedef/test1.cc \ tests/replace-derived-class/replace-derived1.cpp \ tests/replace-derived-class/replace-derived2.cpp \ tests/replace-derived-class/replace-derived3.cpp \ diff --git a/clang_delta/Makefile.in b/clang_delta/Makefile.in index ffad0f28..c1904070 100644 --- a/clang_delta/Makefile.in +++ b/clang_delta/Makefile.in @@ -866,6 +866,7 @@ EXTRA_DIST = \ tests/rename-fun/test1.h \ tests/rename-param/invalid.c \ tests/rename-var/rename-var.c \ + tests/replace-dependent-typedef/test1.cc \ tests/replace-derived-class/replace-derived1.cpp \ tests/replace-derived-class/replace-derived2.cpp \ tests/replace-derived-class/replace-derived3.cpp \ diff --git a/clang_delta/tests/replace-dependent-typedef/test1.cc b/clang_delta/tests/replace-dependent-typedef/test1.cc new file mode 100644 index 00000000..0062ee68 --- /dev/null +++ b/clang_delta/tests/replace-dependent-typedef/test1.cc @@ -0,0 +1,19 @@ +// RUN: %clang_delta --transformation=replace-dependent-typedef --counter=1 %s 2>&1 | %remove_lit_checks | FileCheck %s --check-prefix=CHECK-1 +// RUN: %clang_delta --transformation=replace-dependent-typedef --counter=2 %s 2>&1 | %remove_lit_checks | FileCheck %s --check-prefix=CHECK-2 +// RUN: %clang_delta --transformation=replace-dependent-typedef --counter=3 %s 2>&1 | %remove_lit_checks | FileCheck %s --check-prefix=CHECK-3 + +typedef long xx_t; +// CHECK-1: typedef long xx; +typedef xx_t xx; + +template struct S { typedef T type; }; +struct A { }; +// CHECK-2: struct B { typedef A type; }; +struct B { typedef S::type type; }; + +template +struct C { + typedef int Inner; + // CHECK-3: typedef int Bar; + typedef C::Inner Bar; +};