diff --git a/tests/convert/basic/task.json b/tests/convert/basic/task.json
index 6c1535e..b484b7d 100644
--- a/tests/convert/basic/task.json
+++ b/tests/convert/basic/task.json
@@ -1,6 +1,6 @@
 {
-    "name": "hw 6 ex6",
-    "logPath": "/home/tt/.cache/joj3/tests/homework/h6/e6.log",
+    "name": "hw 6 ex3",
+    "logPath": "/home/tt/.cache/joj3/tests/homework/h6/e3.log",
     "expireUnixTimestamp": 1731686399,
     "stage": {
         "sandboxExecServer": "172.17.0.1:5051",
@@ -28,23 +28,23 @@
                             "stdin": {
                                 "content": "",
                                 "max": 419430400,
-                                "streamIn": false,
-                                "streamOut": false,
-                                "pipe": false
+                                "streamIn": true,
+                                "streamOut": true,
+                                "pipe": true
                             },
                             "stdout": {
                                 "name": "stdout",
                                 "max": 4096,
-                                "streamIn": false,
-                                "streamOut": false,
-                                "pipe": false
+                                "streamIn": true,
+                                "streamOut": true,
+                                "pipe": true
                             },
                             "stderr": {
                                 "name": "stderr",
                                 "max": 4096,
-                                "streamIn": false,
-                                "streamOut": false,
-                                "pipe": false
+                                "streamIn": true,
+                                "streamOut": true,
+                                "pipe": true
                             },
                             "cpuLimit": 4000000000000,
                             "realCpuLimit": 0,
@@ -58,9 +58,9 @@
                                 "/tmp/repo-health-checker": {
                                     "src": "/usr/local/bin/repo-health-checker",
                                     "max": 419430400,
-                                    "streamIn": false,
-                                    "streamOut": false,
-                                    "pipe": false
+                                    "streamIn": true,
+                                    "streamOut": true,
+                                    "pipe": true
                                 }
                             },
                             "copyInCached": {},
@@ -102,23 +102,23 @@
                             "stdin": {
                                 "content": "",
                                 "max": 419430400,
-                                "streamIn": false,
-                                "streamOut": false,
-                                "pipe": false
+                                "streamIn": true,
+                                "streamOut": true,
+                                "pipe": true
                             },
                             "stdout": {
                                 "name": "stdout",
                                 "max": 800000000000000,
-                                "streamIn": false,
-                                "streamOut": false,
-                                "pipe": false
+                                "streamIn": true,
+                                "streamOut": true,
+                                "pipe": true
                             },
                             "stderr": {
                                 "name": "stderr",
                                 "max": 800000000000000,
-                                "streamIn": false,
-                                "streamOut": false,
-                                "pipe": false
+                                "streamIn": true,
+                                "streamOut": true,
+                                "pipe": true
                             },
                             "cpuLimit": 1000000000000000,
                             "realCpuLimit": 0,
@@ -132,9 +132,9 @@
                                 "tools/compile": {
                                     "src": "/home/tt/.config/joj/tools/compile",
                                     "max": 419430400,
-                                    "streamIn": false,
-                                    "streamOut": false,
-                                    "pipe": false
+                                    "streamIn": true,
+                                    "streamOut": true,
+                                    "pipe": true
                                 }
                             },
                             "copyInCached": {},
@@ -144,7 +144,10 @@
                                 "stderr"
                             ],
                             "copyOutCached": [
-                                "h6/build/ex6",
+                                "h6/build/ex3",
+                                "build/asan",
+                                "build/ubsan",
+                                "build/msan",
                                 "h6/build/compile_commands.json"
                             ],
                             "copyOutMax": 0,
@@ -208,23 +211,23 @@
                             "stdin": {
                                 "content": "",
                                 "max": 419430400,
-                                "streamIn": false,
-                                "streamOut": false,
-                                "pipe": false
+                                "streamIn": true,
+                                "streamOut": true,
+                                "pipe": true
                             },
                             "stdout": {
                                 "name": "stdout",
                                 "max": 800000000000000,
-                                "streamIn": false,
-                                "streamOut": false,
-                                "pipe": false
+                                "streamIn": true,
+                                "streamOut": true,
+                                "pipe": true
                             },
                             "stderr": {
                                 "name": "stderr",
                                 "max": 800000000000000,
-                                "streamIn": false,
-                                "streamOut": false,
-                                "pipe": false
+                                "streamIn": true,
+                                "streamOut": true,
+                                "pipe": true
                             },
                             "cpuLimit": 1000000000000000,
                             "realCpuLimit": 0,
@@ -238,13 +241,16 @@
                                 "tools/filelength": {
                                     "src": "/home/tt/.config/joj/tools/filelength",
                                     "max": 419430400,
-                                    "streamIn": false,
-                                    "streamOut": false,
-                                    "pipe": false
+                                    "streamIn": true,
+                                    "streamOut": true,
+                                    "pipe": true
                                 }
                             },
                             "copyInCached": {
-                                "h6/build/ex6": "h6/build/ex6",
+                                "h6/build/ex3": "h6/build/ex3",
+                                "build/asan": "build/asan",
+                                "build/ubsan": "build/ubsan",
+                                "build/msan": "build/msan",
                                 "h6/build/compile_commands.json": "h6/build/compile_commands.json"
                             },
                             "copyInDir": ".",
@@ -326,23 +332,23 @@
                             "stdin": {
                                 "content": "",
                                 "max": 419430400,
-                                "streamIn": false,
-                                "streamOut": false,
-                                "pipe": false
+                                "streamIn": true,
+                                "streamOut": true,
+                                "pipe": true
                             },
                             "stdout": {
                                 "name": "stdout",
                                 "max": 65000000000000,
-                                "streamIn": false,
-                                "streamOut": false,
-                                "pipe": false
+                                "streamIn": true,
+                                "streamOut": true,
+                                "pipe": true
                             },
                             "stderr": {
                                 "name": "stderr",
                                 "max": 800000000000000,
-                                "streamIn": false,
-                                "streamOut": false,
-                                "pipe": false
+                                "streamIn": true,
+                                "streamOut": true,
+                                "pipe": true
                             },
                             "cpuLimit": 1000000000000000,
                             "realCpuLimit": 0,
@@ -356,13 +362,16 @@
                                 "projects/p2/.clang-tidy": {
                                     "src": "/home/tt/.config/joj/projects/p2/.clang-tidy",
                                     "max": 419430400,
-                                    "streamIn": false,
-                                    "streamOut": false,
-                                    "pipe": false
+                                    "streamIn": true,
+                                    "streamOut": true,
+                                    "pipe": true
                                 }
                             },
                             "copyInCached": {
-                                "h6/build/ex6": "h6/build/ex6",
+                                "h6/build/ex3": "h6/build/ex3",
+                                "build/asan": "build/asan",
+                                "build/ubsan": "build/ubsan",
+                                "build/msan": "build/msan",
                                 "h6/build/compile_commands.json": "h6/build/compile_commands.json"
                             },
                             "copyInDir": ".",
@@ -471,23 +480,23 @@
                             "stdin": {
                                 "content": "",
                                 "max": 419430400,
-                                "streamIn": false,
-                                "streamOut": false,
-                                "pipe": false
+                                "streamIn": true,
+                                "streamOut": true,
+                                "pipe": true
                             },
                             "stdout": {
                                 "name": "stdout",
                                 "max": 800000000000000,
-                                "streamIn": false,
-                                "streamOut": false,
-                                "pipe": false
+                                "streamIn": true,
+                                "streamOut": true,
+                                "pipe": true
                             },
                             "stderr": {
                                 "name": "stderr",
                                 "max": 65000000000000,
-                                "streamIn": false,
-                                "streamOut": false,
-                                "pipe": false
+                                "streamIn": true,
+                                "streamOut": true,
+                                "pipe": true
                             },
                             "cpuLimit": 1000000000000000,
                             "realCpuLimit": 0,
@@ -499,7 +508,10 @@
                             "cpuSetLimit": "",
                             "copyIn": {},
                             "copyInCached": {
-                                "h6/build/ex6": "h6/build/ex6",
+                                "h6/build/ex3": "h6/build/ex3",
+                                "build/asan": "build/asan",
+                                "build/ubsan": "build/ubsan",
+                                "build/msan": "build/msan",
                                 "h6/build/compile_commands.json": "h6/build/compile_commands.json"
                             },
                             "copyInDir": ".",
@@ -584,23 +596,23 @@
                             "stdin": {
                                 "content": "",
                                 "max": 419430400,
-                                "streamIn": false,
-                                "streamOut": false,
-                                "pipe": false
+                                "streamIn": true,
+                                "streamOut": true,
+                                "pipe": true
                             },
                             "stdout": {
                                 "name": "stdout",
                                 "max": 65000000000000,
-                                "streamIn": false,
-                                "streamOut": false,
-                                "pipe": false
+                                "streamIn": true,
+                                "streamOut": true,
+                                "pipe": true
                             },
                             "stderr": {
                                 "name": "stderr",
                                 "max": 800000000000000,
-                                "streamIn": false,
-                                "streamOut": false,
-                                "pipe": false
+                                "streamIn": true,
+                                "streamOut": true,
+                                "pipe": true
                             },
                             "cpuLimit": 1000000000000000,
                             "realCpuLimit": 0,
@@ -612,7 +624,10 @@
                             "cpuSetLimit": "",
                             "copyIn": {},
                             "copyInCached": {
-                                "h6/build/ex6": "h6/build/ex6",
+                                "h6/build/ex3": "h6/build/ex3",
+                                "build/asan": "build/asan",
+                                "build/ubsan": "build/ubsan",
+                                "build/msan": "build/msan",
                                 "h6/build/compile_commands.json": "h6/build/compile_commands.json"
                             },
                             "copyInDir": ".",
@@ -684,13 +699,14 @@
                 ]
             },
             {
-                "name": "[joj] ex6",
+                "name": "[run] address sanitizer",
                 "executor": {
                     "name": "sandbox",
                     "with": {
                         "default": {
                             "args": [
-                                "./h6/build/ex6"
+                                "./build/asan",
+                                "-a"
                             ],
                             "env": [
                                 "PATH=/usr/bin:/bin:/usr/local/bin"
@@ -698,23 +714,23 @@
                             "stdin": {
                                 "content": "",
                                 "max": 419430400,
-                                "streamIn": false,
-                                "streamOut": false,
-                                "pipe": false
+                                "streamIn": true,
+                                "streamOut": true,
+                                "pipe": true
                             },
                             "stdout": {
                                 "name": "stdout",
                                 "max": 800000000000000,
-                                "streamIn": false,
-                                "streamOut": false,
-                                "pipe": false
+                                "streamIn": true,
+                                "streamOut": true,
+                                "pipe": true
                             },
                             "stderr": {
                                 "name": "stderr",
                                 "max": 800000000000000,
-                                "streamIn": false,
-                                "streamOut": false,
-                                "pipe": false
+                                "streamIn": true,
+                                "streamOut": true,
+                                "pipe": true
                             },
                             "cpuLimit": 1000000000000000,
                             "realCpuLimit": 0,
@@ -726,7 +742,295 @@
                             "cpuSetLimit": "",
                             "copyIn": {},
                             "copyInCached": {
-                                "h6/build/ex6": "h6/build/ex6",
+                                "h6/build/ex3": "h6/build/ex3",
+                                "build/asan": "build/asan",
+                                "build/ubsan": "build/ubsan",
+                                "build/msan": "build/msan",
+                                "h6/build/compile_commands.json": "h6/build/compile_commands.json"
+                            },
+                            "copyInDir": ".",
+                            "copyOut": [
+                                "stdout",
+                                "stderr"
+                            ],
+                            "copyOutCached": [],
+                            "copyOutMax": 0,
+                            "copyOutDir": "",
+                            "tty": false,
+                            "strictMemoryLimit": false,
+                            "dataSegmentLimit": false,
+                            "addressSpaceLimit": false
+                        },
+                        "cases": []
+                    }
+                },
+                "parsers": [
+                    {
+                        "name": "result-status",
+                        "with": {
+                            "score": 1,
+                            "comment": "",
+                            "forceQuitOnNotAccepted": false
+                        }
+                    },
+                    {
+                        "name": "result-detail",
+                        "with": {
+                            "score": 0,
+                            "comment": "",
+                            "showFiles": [
+                                "stderr"
+                            ],
+                            "showExitStatus": true,
+                            "showRuntime": true,
+                            "showMemory": true
+                        }
+                    }
+                ]
+            },
+            {
+                "name": "[run] memory sanitizer",
+                "executor": {
+                    "name": "sandbox",
+                    "with": {
+                        "default": {
+                            "args": [
+                                "./h6/build/msan",
+                                "-a"
+                            ],
+                            "env": [
+                                "PATH=/usr/bin:/bin:/usr/local/bin"
+                            ],
+                            "stdin": {
+                                "content": "",
+                                "max": 419430400,
+                                "streamIn": true,
+                                "streamOut": true,
+                                "pipe": true
+                            },
+                            "stdout": {
+                                "name": "stdout",
+                                "max": 800000000000000,
+                                "streamIn": true,
+                                "streamOut": true,
+                                "pipe": true
+                            },
+                            "stderr": {
+                                "name": "stderr",
+                                "max": 800000000000000,
+                                "streamIn": true,
+                                "streamOut": true,
+                                "pipe": true
+                            },
+                            "cpuLimit": 1000000000000000,
+                            "realCpuLimit": 0,
+                            "clockLimit": 2000000000000000,
+                            "memoryLimit": 838860800,
+                            "stackLimit": 0,
+                            "procLimit": 50,
+                            "cpuRateLimit": 0,
+                            "cpuSetLimit": "",
+                            "copyIn": {
+                                "h6/build/msan": {
+                                    "src": "/home/tt/.config/joj/h6/build/msan",
+                                    "max": 419430400,
+                                    "streamIn": true,
+                                    "streamOut": true,
+                                    "pipe": true
+                                }
+                            },
+                            "copyInCached": {
+                                "h6/build/ex3": "h6/build/ex3",
+                                "build/asan": "build/asan",
+                                "build/ubsan": "build/ubsan",
+                                "build/msan": "build/msan",
+                                "h6/build/compile_commands.json": "h6/build/compile_commands.json"
+                            },
+                            "copyInDir": ".",
+                            "copyOut": [
+                                "stdout",
+                                "stderr"
+                            ],
+                            "copyOutCached": [],
+                            "copyOutMax": 0,
+                            "copyOutDir": "",
+                            "tty": false,
+                            "strictMemoryLimit": false,
+                            "dataSegmentLimit": false,
+                            "addressSpaceLimit": false
+                        },
+                        "cases": []
+                    }
+                },
+                "parsers": [
+                    {
+                        "name": "result-status",
+                        "with": {
+                            "score": 1,
+                            "comment": "",
+                            "forceQuitOnNotAccepted": false
+                        }
+                    },
+                    {
+                        "name": "result-detail",
+                        "with": {
+                            "score": 0,
+                            "comment": "",
+                            "showFiles": [
+                                "stderr"
+                            ],
+                            "showExitStatus": true,
+                            "showRuntime": true,
+                            "showMemory": true
+                        }
+                    }
+                ]
+            },
+            {
+                "name": "[run] undefined behavior sanitizer",
+                "executor": {
+                    "name": "sandbox",
+                    "with": {
+                        "default": {
+                            "args": [
+                                "./h6/build/ubsan",
+                                "-a"
+                            ],
+                            "env": [
+                                "PATH=/usr/bin:/bin:/usr/local/bin"
+                            ],
+                            "stdin": {
+                                "content": "",
+                                "max": 419430400,
+                                "streamIn": true,
+                                "streamOut": true,
+                                "pipe": true
+                            },
+                            "stdout": {
+                                "name": "stdout",
+                                "max": 800000000000000,
+                                "streamIn": true,
+                                "streamOut": true,
+                                "pipe": true
+                            },
+                            "stderr": {
+                                "name": "stderr",
+                                "max": 800000000000000,
+                                "streamIn": true,
+                                "streamOut": true,
+                                "pipe": true
+                            },
+                            "cpuLimit": 1000000000000000,
+                            "realCpuLimit": 0,
+                            "clockLimit": 2000000000000000,
+                            "memoryLimit": 838860800,
+                            "stackLimit": 0,
+                            "procLimit": 50,
+                            "cpuRateLimit": 0,
+                            "cpuSetLimit": "",
+                            "copyIn": {
+                                "h6/build/ubsan": {
+                                    "src": "/home/tt/.config/joj/h6/build/ubsan",
+                                    "max": 419430400,
+                                    "streamIn": true,
+                                    "streamOut": true,
+                                    "pipe": true
+                                }
+                            },
+                            "copyInCached": {
+                                "h6/build/ex3": "h6/build/ex3",
+                                "build/asan": "build/asan",
+                                "build/ubsan": "build/ubsan",
+                                "build/msan": "build/msan",
+                                "h6/build/compile_commands.json": "h6/build/compile_commands.json"
+                            },
+                            "copyInDir": ".",
+                            "copyOut": [
+                                "stdout",
+                                "stderr"
+                            ],
+                            "copyOutCached": [],
+                            "copyOutMax": 0,
+                            "copyOutDir": "",
+                            "tty": false,
+                            "strictMemoryLimit": false,
+                            "dataSegmentLimit": false,
+                            "addressSpaceLimit": false
+                        },
+                        "cases": []
+                    }
+                },
+                "parsers": [
+                    {
+                        "name": "result-status",
+                        "with": {
+                            "score": 1,
+                            "comment": "",
+                            "forceQuitOnNotAccepted": false
+                        }
+                    },
+                    {
+                        "name": "result-detail",
+                        "with": {
+                            "score": 0,
+                            "comment": "",
+                            "showFiles": [
+                                "stderr"
+                            ],
+                            "showExitStatus": true,
+                            "showRuntime": true,
+                            "showMemory": true
+                        }
+                    }
+                ]
+            },
+            {
+                "name": "[joj] ex3",
+                "executor": {
+                    "name": "sandbox",
+                    "with": {
+                        "default": {
+                            "args": [
+                                "./h6/build/ex3"
+                            ],
+                            "env": [
+                                "PATH=/usr/bin:/bin:/usr/local/bin"
+                            ],
+                            "stdin": {
+                                "content": "",
+                                "max": 419430400,
+                                "streamIn": true,
+                                "streamOut": true,
+                                "pipe": true
+                            },
+                            "stdout": {
+                                "name": "stdout",
+                                "max": 800000000000000,
+                                "streamIn": true,
+                                "streamOut": true,
+                                "pipe": true
+                            },
+                            "stderr": {
+                                "name": "stderr",
+                                "max": 800000000000000,
+                                "streamIn": true,
+                                "streamOut": true,
+                                "pipe": true
+                            },
+                            "cpuLimit": 1000000000000000,
+                            "realCpuLimit": 0,
+                            "clockLimit": 2000000000000000,
+                            "memoryLimit": 838860800,
+                            "stackLimit": 0,
+                            "procLimit": 50,
+                            "cpuRateLimit": 0,
+                            "cpuSetLimit": "",
+                            "copyIn": {},
+                            "copyInCached": {
+                                "h6/build/ex3": "h6/build/ex3",
+                                "build/asan": "build/asan",
+                                "build/ubsan": "build/ubsan",
+                                "build/msan": "build/msan",
                                 "h6/build/compile_commands.json": "h6/build/compile_commands.json"
                             },
                             "copyInDir": ".",
@@ -748,11 +1052,11 @@
                                     "PATH=/usr/bin:/bin:/usr/local/bin"
                                 ],
                                 "stdin": {
-                                    "src": "/home/tt/.config/joj/tests/homework/h6/e6/case0.in",
+                                    "src": "/home/tt/.config/joj/tests/homework/h6/e3/case0.in",
                                     "max": 419430400,
-                                    "streamIn": false,
-                                    "streamOut": false,
-                                    "pipe": false
+                                    "streamIn": true,
+                                    "streamOut": true,
+                                    "pipe": true
                                 },
                                 "cpuLimit": 30000000000,
                                 "clockLimit": 60000000000,
@@ -764,11 +1068,11 @@
                                     "PATH=/usr/bin:/bin:/usr/local/bin"
                                 ],
                                 "stdin": {
-                                    "src": "/home/tt/.config/joj/tests/homework/h6/e6/case1.in",
+                                    "src": "/home/tt/.config/joj/tests/homework/h6/e3/case1.in",
                                     "max": 419430400,
-                                    "streamIn": false,
-                                    "streamOut": false,
-                                    "pipe": false
+                                    "streamIn": true,
+                                    "streamOut": true,
+                                    "pipe": true
                                 },
                                 "cpuLimit": 30000000000,
                                 "clockLimit": 60000000000,
@@ -780,11 +1084,11 @@
                                     "PATH=/usr/bin:/bin:/usr/local/bin"
                                 ],
                                 "stdin": {
-                                    "src": "/home/tt/.config/joj/tests/homework/h6/e6/case2.in",
+                                    "src": "/home/tt/.config/joj/tests/homework/h6/e3/case2.in",
                                     "max": 419430400,
-                                    "streamIn": false,
-                                    "streamOut": false,
-                                    "pipe": false
+                                    "streamIn": true,
+                                    "streamOut": true,
+                                    "pipe": true
                                 },
                                 "cpuLimit": 30000000000,
                                 "clockLimit": 60000000000,
@@ -796,11 +1100,11 @@
                                     "PATH=/usr/bin:/bin:/usr/local/bin"
                                 ],
                                 "stdin": {
-                                    "src": "/home/tt/.config/joj/tests/homework/h6/e6/case3.in",
+                                    "src": "/home/tt/.config/joj/tests/homework/h6/e3/case3.in",
                                     "max": 419430400,
-                                    "streamIn": false,
-                                    "streamOut": false,
-                                    "pipe": false
+                                    "streamIn": true,
+                                    "streamOut": true,
+                                    "pipe": true
                                 },
                                 "cpuLimit": 30000000000,
                                 "clockLimit": 60000000000,
@@ -812,11 +1116,11 @@
                                     "PATH=/usr/bin:/bin:/usr/local/bin"
                                 ],
                                 "stdin": {
-                                    "src": "/home/tt/.config/joj/tests/homework/h6/e6/case4.in",
+                                    "src": "/home/tt/.config/joj/tests/homework/h6/e3/case4.in",
                                     "max": 419430400,
-                                    "streamIn": false,
-                                    "streamOut": false,
-                                    "pipe": false
+                                    "streamIn": true,
+                                    "streamOut": true,
+                                    "pipe": true
                                 },
                                 "cpuLimit": 30000000000,
                                 "clockLimit": 60000000000,
@@ -828,11 +1132,11 @@
                                     "PATH=/usr/bin:/bin:/usr/local/bin"
                                 ],
                                 "stdin": {
-                                    "src": "/home/tt/.config/joj/tests/homework/h6/e6/case5.in",
+                                    "src": "/home/tt/.config/joj/tests/homework/h6/e3/case5.in",
                                     "max": 419430400,
-                                    "streamIn": false,
-                                    "streamOut": false,
-                                    "pipe": false
+                                    "streamIn": true,
+                                    "streamOut": true,
+                                    "pipe": true
                                 },
                                 "cpuLimit": 30000000000,
                                 "clockLimit": 60000000000,
@@ -844,11 +1148,11 @@
                                     "PATH=/usr/bin:/bin:/usr/local/bin"
                                 ],
                                 "stdin": {
-                                    "src": "/home/tt/.config/joj/tests/homework/h6/e6/case6.in",
+                                    "src": "/home/tt/.config/joj/tests/homework/h6/e3/case6.in",
                                     "max": 419430400,
-                                    "streamIn": false,
-                                    "streamOut": false,
-                                    "pipe": false
+                                    "streamIn": true,
+                                    "streamOut": true,
+                                    "pipe": true
                                 },
                                 "cpuLimit": 30000000000,
                                 "clockLimit": 60000000000,
@@ -860,11 +1164,11 @@
                                     "PATH=/usr/bin:/bin:/usr/local/bin"
                                 ],
                                 "stdin": {
-                                    "src": "/home/tt/.config/joj/tests/homework/h6/e6/case7.in",
+                                    "src": "/home/tt/.config/joj/tests/homework/h6/e3/case7.in",
                                     "max": 419430400,
-                                    "streamIn": false,
-                                    "streamOut": false,
-                                    "pipe": false
+                                    "streamIn": true,
+                                    "streamOut": true,
+                                    "pipe": true
                                 },
                                 "cpuLimit": 30000000000,
                                 "clockLimit": 60000000000,
@@ -876,11 +1180,11 @@
                                     "PATH=/usr/bin:/bin:/usr/local/bin"
                                 ],
                                 "stdin": {
-                                    "src": "/home/tt/.config/joj/tests/homework/h6/e6/case8.in",
+                                    "src": "/home/tt/.config/joj/tests/homework/h6/e3/case8.in",
                                     "max": 419430400,
-                                    "streamIn": false,
-                                    "streamOut": false,
-                                    "pipe": false
+                                    "streamIn": true,
+                                    "streamOut": true,
+                                    "pipe": true
                                 },
                                 "cpuLimit": 30000000000,
                                 "clockLimit": 60000000000,
@@ -892,11 +1196,11 @@
                                     "PATH=/usr/bin:/bin:/usr/local/bin"
                                 ],
                                 "stdin": {
-                                    "src": "/home/tt/.config/joj/tests/homework/h6/e6/case9.in",
+                                    "src": "/home/tt/.config/joj/tests/homework/h6/e3/case9.in",
                                     "max": 419430400,
-                                    "streamIn": false,
-                                    "streamOut": false,
-                                    "pipe": false
+                                    "streamIn": true,
+                                    "streamOut": true,
+                                    "pipe": true
                                 },
                                 "cpuLimit": 30000000000,
                                 "clockLimit": 60000000000,
@@ -917,10 +1221,10 @@
                                         {
                                             "score": 0,
                                             "fileName": "stdout",
-                                            "answerPath": "/home/tt/.config/joj/tests/homework/h6/e6/case0.out",
+                                            "answerPath": "/home/tt/.config/joj/tests/homework/h6/e3/case0.out",
                                             "forceQuitOnDiff": true,
                                             "alwaysHide": false,
-                                            "compareSpace": true
+                                            "compareSpace": false
                                         }
                                     ]
                                 },
@@ -929,10 +1233,10 @@
                                         {
                                             "score": 0,
                                             "fileName": "stdout",
-                                            "answerPath": "/home/tt/.config/joj/tests/homework/h6/e6/case1.out",
+                                            "answerPath": "/home/tt/.config/joj/tests/homework/h6/e3/case1.out",
                                             "forceQuitOnDiff": true,
                                             "alwaysHide": false,
-                                            "compareSpace": true
+                                            "compareSpace": false
                                         }
                                     ]
                                 },
@@ -941,10 +1245,10 @@
                                         {
                                             "score": 0,
                                             "fileName": "stdout",
-                                            "answerPath": "/home/tt/.config/joj/tests/homework/h6/e6/case2.out",
+                                            "answerPath": "/home/tt/.config/joj/tests/homework/h6/e3/case2.out",
                                             "forceQuitOnDiff": true,
                                             "alwaysHide": false,
-                                            "compareSpace": true
+                                            "compareSpace": false
                                         }
                                     ]
                                 },
@@ -953,10 +1257,10 @@
                                         {
                                             "score": 0,
                                             "fileName": "stdout",
-                                            "answerPath": "/home/tt/.config/joj/tests/homework/h6/e6/case3.out",
+                                            "answerPath": "/home/tt/.config/joj/tests/homework/h6/e3/case3.out",
                                             "forceQuitOnDiff": true,
                                             "alwaysHide": false,
-                                            "compareSpace": true
+                                            "compareSpace": false
                                         }
                                     ]
                                 },
@@ -965,10 +1269,10 @@
                                         {
                                             "score": 0,
                                             "fileName": "stdout",
-                                            "answerPath": "/home/tt/.config/joj/tests/homework/h6/e6/case4.out",
+                                            "answerPath": "/home/tt/.config/joj/tests/homework/h6/e3/case4.out",
                                             "forceQuitOnDiff": true,
                                             "alwaysHide": false,
-                                            "compareSpace": true
+                                            "compareSpace": false
                                         }
                                     ]
                                 },
@@ -977,10 +1281,10 @@
                                         {
                                             "score": 0,
                                             "fileName": "stdout",
-                                            "answerPath": "/home/tt/.config/joj/tests/homework/h6/e6/case5.out",
+                                            "answerPath": "/home/tt/.config/joj/tests/homework/h6/e3/case5.out",
                                             "forceQuitOnDiff": true,
                                             "alwaysHide": false,
-                                            "compareSpace": true
+                                            "compareSpace": false
                                         }
                                     ]
                                 },
@@ -989,10 +1293,10 @@
                                         {
                                             "score": 0,
                                             "fileName": "stdout",
-                                            "answerPath": "/home/tt/.config/joj/tests/homework/h6/e6/case6.out",
+                                            "answerPath": "/home/tt/.config/joj/tests/homework/h6/e3/case6.out",
                                             "forceQuitOnDiff": true,
                                             "alwaysHide": false,
-                                            "compareSpace": true
+                                            "compareSpace": false
                                         }
                                     ]
                                 },
@@ -1001,10 +1305,10 @@
                                         {
                                             "score": 0,
                                             "fileName": "stdout",
-                                            "answerPath": "/home/tt/.config/joj/tests/homework/h6/e6/case7.out",
+                                            "answerPath": "/home/tt/.config/joj/tests/homework/h6/e3/case7.out",
                                             "forceQuitOnDiff": true,
                                             "alwaysHide": false,
-                                            "compareSpace": true
+                                            "compareSpace": false
                                         }
                                     ]
                                 },
@@ -1013,10 +1317,10 @@
                                         {
                                             "score": 0,
                                             "fileName": "stdout",
-                                            "answerPath": "/home/tt/.config/joj/tests/homework/h6/e6/case8.out",
+                                            "answerPath": "/home/tt/.config/joj/tests/homework/h6/e3/case8.out",
                                             "forceQuitOnDiff": true,
                                             "alwaysHide": false,
-                                            "compareSpace": true
+                                            "compareSpace": false
                                         }
                                     ]
                                 },
@@ -1025,10 +1329,10 @@
                                         {
                                             "score": 0,
                                             "fileName": "stdout",
-                                            "answerPath": "/home/tt/.config/joj/tests/homework/h6/e6/case9.out",
+                                            "answerPath": "/home/tt/.config/joj/tests/homework/h6/e3/case9.out",
                                             "forceQuitOnDiff": true,
                                             "alwaysHide": false,
-                                            "compareSpace": true
+                                            "compareSpace": false
                                         }
                                     ]
                                 }
@@ -1061,7 +1365,7 @@
         ]
     },
     "teapot": {
-        "logPath": "/home/tt/.cache/joj3/tests/homework/h6/e6-joint-teapot-debug.log",
+        "logPath": "/home/tt/.cache/joj3/tests/homework/h6/e3-joint-teapot-debug.log",
         "scoreboardPath": "tests/homework-scoreboard.csv",
         "failedTablePath": "tests/homework-failed-table.md",
         "gradingRepoName": "engr151-joj",
diff --git a/tests/convert/basic/task.toml b/tests/convert/basic/task.toml
index e7a7c5a..e9fc796 100644
--- a/tests/convert/basic/task.toml
+++ b/tests/convert/basic/task.toml
@@ -1,6 +1,6 @@
 # general task configuration
-task.name = "hw 6 ex6" # task name
-task.type = "tests/homework/h6/e6"
+task.name = "hw 6 ex3" # task name
+task.type = "tests/homework/h6/e3"
 
 release.deadline = 2024-11-15 23:59:59+08:00
 release.stages = [ "compile" ]
@@ -9,7 +9,7 @@ release.stages = [ "compile" ]
 name = "Compilation"
 command = "./tools/compile" # eg. script running cmake commands  
 files.import = [ "tools/compile" ] 
-files.export = [ "h6/build/ex6", "h6/build/compile_commands.json" ]
+files.export = [ "h6/build/ex3", "h6/build/asan", "h6/build/ubsan", "h6/build/msan", "h6/build/compile_commands.json" ]
 
 # compile parsers 
 parsers = [ "result-detail", "dummy", "result-status" ]
@@ -78,10 +78,45 @@ result-detail.time = false
 result-detail.mem = false
 
 [[stages]]
-name = "[joj] ex6"
+name = "[run] address sanitizer"
+group = "run"
+command="./h6/build/asan -a"
+files.import = [ "h6/build/asan" ]
+
+parsers = [ "result-status", "result-detail" ]
+result-status.score = 1
+result-status.forcequit = false
+result-detail.exitstatus = true
+result-detail.stderr = true
+
+[[stages]]
+name = "[run] memory sanitizer"
+group = "run"
+command="./h6/build/msan -a"
+files.import = [ "h6/build/msan" ]
+
+parsers = [ "result-status", "result-detail" ]
+result-status.score = 1
+result-status.forcequit = false
+result-detail.exitstatus = true
+result-detail.stderr = true
+
+[[stages]]
+name = "[run] undefined behavior sanitizer"
+command="./h6/build/ubsan -a"
+files.import = [ "h6/build/ubsan" ]
+
+parsers = [ "result-status", "result-detail" ]
+result-status.score = 1
+result-status.forcequit = false
+result-detail.exitstatus = true
+result-detail.stderr = true
+
+[[stages]]
+name = "[joj] ex3"
 group = "joj"
-command="./h6/build/ex6"
-files.import = [ "h6/build/ex6" ]
+command="./h6/build/ex3"
+files.import = [ "h6/build/ex3" ]
 score = 10
 
 parsers = [ "diff", "dummy", "result-detail" ]