From ce213c7be50e60a20bbbd45c5692f7d80339361b Mon Sep 17 00:00:00 2001 From: Lorenz Stechauner Date: Mon, 18 Aug 2025 16:38:10 +0200 Subject: [PATCH] thesis: Complete Conclusion --- thesis/src/06.conclusion.tex | 16 +++++++++++++++- thesis/src/attachments/auto-test.zip | Bin 0 -> 11944 bytes thesis/thesis.tex | 2 ++ 3 files changed, 17 insertions(+), 1 deletion(-) create mode 100644 thesis/src/attachments/auto-test.zip diff --git a/thesis/src/06.conclusion.tex b/thesis/src/06.conclusion.tex index db32d4b..c217683 100644 --- a/thesis/src/06.conclusion.tex +++ b/thesis/src/06.conclusion.tex @@ -1,4 +1,18 @@ \chapter{Conclusion}\label{ch:conclusion} -Lorem Ipsum. +This work presented \texttt{intercept.so}, a shared object file intended to be preloaded using \texttt{LD\_PRELOAD}, which may be used to intercept function calls on Linux systems. +Furthermore, a tool to use this shared object easier---the \texttt{intercept} Python program---was presented. +By using preloading to hook/intercept function calls, the overhead and performance degradation is negligible for the purpose of testing student submissions. +To make use of intercepted function calls, some techniques of automatic testing of simple C programs were discussed. + +The source code of the programs developed in this work is attached below. +(Not all PDF viewers may open/download attachments.) + +\texttt{intercept.so}: +\textattachfile{../proj/intercept/src/intercept.c}{\textcolor{blue}{\texttt{intercept.c}}} (source code), and +\textattachfile{../proj/intercept/Makefile}{\textcolor{blue}{\texttt{Makefile}}}. + +\textattachfile{../proj/intercept/intercept}{\textcolor{blue}{\texttt{intercept}}} (Python program). + +Automatic testing: \textattachfile{src/attachments/auto-test.zip}{\textcolor{blue}{\texttt{auto-test.zip}}} (zipped Python programs). diff --git a/thesis/src/attachments/auto-test.zip b/thesis/src/attachments/auto-test.zip new file mode 100644 index 0000000000000000000000000000000000000000..1384e9690b86d6361fbf3b8d540fdb5d997e5ee1 GIT binary patch literal 11944 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