Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion feature_unit_tests/run-all-tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ unexpected_failed_tests=
unexpected_succeeded_tests=

# TODO(akawashiro): extern
for dir in hello-g++ hello-gcc just-return-g++ just-return-gcc simple-lib-g++ simple-lib-gcc version-gcc tls-lib-gcc tls-lib-gcc-without-base tls-multiple-lib-gcc tls-thread-g++ call_once-g++ inheritance-g++ typeid-g++ dynamic_cast-g++ tls-dlopen-gcc static-in-function-g++ static-in-class-g++ tls-multiple-module-g++ exception-g++ stb_gnu_unique_tls setjmp-gcc tls-bss-gcc tls-bss-g++ hello-g++-aarch64 hello-gcc-aarch64 just-return-g++-aarch64 simple-lib-g++-aarch64 simple-lib-gcc-aarch64 version-gcc-aarch64 tls-bss-gcc-aarch64 tls-bss-g++-aarch64 just-return-gcc-aarch64 setjmp-gcc-aarch64 exception-g++-aarch64 typeid-g++-aarch64 inheritance-g++-aarch64 dynamic_cast-g++-aarch64 static-in-class-g++-aarch64 static-in-function-g++-aarch64 tls-lib-gcc-aarch64 stb_gnu_unique_tls-aarch64 tls-multiple-module-g++-aarch64 tls-dlopen-gcc-aarch64 call_once-g++-aarch64 tls-thread-g++-aarch64 tls-lib-gcc-without-base-aarch64 delete-unused-PT_DYNAMIC tls-only-tbss-g++
for dir in hello-g++ hello-gcc just-return-g++ just-return-gcc simple-lib-g++ simple-lib-gcc version-gcc tls-lib-gcc tls-lib-gcc-without-base tls-multiple-lib-gcc tls-thread-g++ call_once-g++ inheritance-g++ typeid-g++ dynamic_cast-g++ tls-dlopen-gcc static-in-function-g++ static-in-class-g++ tls-multiple-module-g++ exception-g++ stb_gnu_unique_tls setjmp-gcc tls-bss-gcc tls-bss-g++ hello-g++-aarch64 hello-gcc-aarch64 just-return-g++-aarch64 simple-lib-g++-aarch64 simple-lib-gcc-aarch64 version-gcc-aarch64 tls-bss-gcc-aarch64 tls-bss-g++-aarch64 just-return-gcc-aarch64 setjmp-gcc-aarch64 exception-g++-aarch64 typeid-g++-aarch64 inheritance-g++-aarch64 dynamic_cast-g++-aarch64 static-in-class-g++-aarch64 static-in-function-g++-aarch64 tls-lib-gcc-aarch64 stb_gnu_unique_tls-aarch64 tls-multiple-module-g++-aarch64 tls-dlopen-gcc-aarch64 call_once-g++-aarch64 tls-thread-g++-aarch64 tls-lib-gcc-without-base-aarch64 delete-unused-PT_DYNAMIC tls-only-tbss-g++ user-defined-exception-g++
do
pushd `pwd`
cd $dir
Expand Down
13 changes: 13 additions & 0 deletions feature_unit_tests/user-defined-exception-g++/fuga.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
#include "fuga.h"

void throw_exception_fuga() {
throw CustomException();
}

void catch_exception_fuga() {
try {
throw_exception_fuga();
} catch (CustomException) {
std::cerr << "Caught CustomException" << std::endl;
}
}
8 changes: 8 additions & 0 deletions feature_unit_tests/user-defined-exception-g++/fuga.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
#include <exception>
#include <iostream>
#include <stdexcept>

struct CustomException {};

void throw_exception_fuga();
void catch_exception_fuga();
10 changes: 10 additions & 0 deletions feature_unit_tests/user-defined-exception-g++/main.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#include "fuga.h"

int main() {
catch_exception_fuga();
try {
throw_exception_fuga();
} catch (CustomException& e) {
std::cout << "Caught CustomException" << std::endl;
}
}
14 changes: 14 additions & 0 deletions feature_unit_tests/user-defined-exception-g++/test.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
#! /bin/bash -eu

g++ -fPIC -shared -o libfuga.so -Wl,-soname,libfuga.so fuga.cc
cp libfuga.so libfuga.so.original
g++ main.cc -o main.out libfuga.so
LD_LIBRARY_PATH=. $(git rev-parse --show-toplevel)/build/sold -i libfuga.so.original -o libfuga.so.soldout --section-headers --check-output

# Use sold
ln -sf libhoge.so.soldout libhoge.so
# Use original
# ln -sf libhoge.so.original libhoge.so
ln -sf libfuga.so.soldout libfuga.so

LD_LIBRARY_PATH=. ./main.out