diff --git a/src/tests/add-ons/kernel/file_systems/fs_shell/external_commands.h b/src/tests/add-ons/kernel/file_systems/fs_shell/external_commands.h index b61509b8c0..14843cf9e7 100644 --- a/src/tests/add-ons/kernel/file_systems/fs_shell/external_commands.h +++ b/src/tests/add-ons/kernel/file_systems/fs_shell/external_commands.h @@ -11,6 +11,7 @@ extern "C" { char *get_external_command(const char *prompt, char *input, int len); void reply_to_external_command(int result); +void external_command_cleanup(); #ifdef __cplusplus } diff --git a/src/tests/add-ons/kernel/file_systems/fs_shell/external_commands_beos.cpp b/src/tests/add-ons/kernel/file_systems/fs_shell/external_commands_beos.cpp index f2c9f6889d..5c3ed72fa7 100644 --- a/src/tests/add-ons/kernel/file_systems/fs_shell/external_commands_beos.cpp +++ b/src/tests/add-ons/kernel/file_systems/fs_shell/external_commands_beos.cpp @@ -95,3 +95,10 @@ reply_to_external_command(int result) } } } + + +void +external_command_cleanup() +{ + // The port will be deleted automatically when the team exits. +} diff --git a/src/tests/add-ons/kernel/file_systems/fs_shell/external_commands_unix.cpp b/src/tests/add-ons/kernel/file_systems/fs_shell/external_commands_unix.cpp index 14c2f2ca59..8958266796 100644 --- a/src/tests/add-ons/kernel/file_systems/fs_shell/external_commands_unix.cpp +++ b/src/tests/add-ons/kernel/file_systems/fs_shell/external_commands_unix.cpp @@ -166,3 +166,10 @@ reply_to_external_command(int result) if (bytesWritten < 0) close_client_connection(); } + + +void +external_command_cleanup() +{ + unlink(kFSShellCommandSocketAddress); +} diff --git a/src/tests/add-ons/kernel/file_systems/fs_shell/fsh.cpp b/src/tests/add-ons/kernel/file_systems/fs_shell/fsh.cpp index eaf79b241c..77a16c79d0 100644 --- a/src/tests/add-ons/kernel/file_systems/fs_shell/fsh.cpp +++ b/src/tests/add-ons/kernel/file_systems/fs_shell/fsh.cpp @@ -2165,6 +2165,9 @@ do_fsh(void) free(argv); } + if (!sInteractiveMode) + external_command_cleanup(); + if (feof(stdin)) printf("\n");