<table border="1" cellspacing="0" cellpadding="8">
    <tr>
        <th>Issue</th>
        <td>
            <a href=https://github.com/llvm/llvm-project/issues/144077>144077</a>
        </td>
    </tr>

    <tr>
        <th>Summary</th>
        <td>
            lldb's HostTests cause Windows Terminal to completely exit
        </td>
    </tr>

    <tr>
      <th>Labels</th>
      <td>
            lldb,
            platform:windows
      </td>
    </tr>

    <tr>
      <th>Assignees</th>
      <td>
      </td>
    </tr>

    <tr>
      <th>Reporter</th>
      <td>
          DavidSpickett
      </td>
    </tr>
</table>

<pre>
    Found this on Linaro's Windows on Arm bot. Build lldb as normal in a Windows Terminal (not conhost) and then:
```
ninja check-lldb-unit
```
When this gets to host tests, the current terminal and any other terminal windows will close at some point during the tests.

I narrowed it down to:
```
TEST(Host, FindProcesses) {
  SubsystemRAII<FileSystem, HostInfo> subsystems;

  if (test_arg != 0) {
    // Give the parent time to retrieve information about self.
    // It will kill self when it is done.
 std::this_thread::sleep_for(std::chrono::seconds(10));
    exit(0);
 }

  bool foundPID = false;
  ProcessLaunchInfo info;
 ProcessInstanceInfoList processes;
  ProcessInstanceInfoMatch match(TestMainArgv0, NameMatch::Equals);
 info.SetExecutableFile(FileSpec(TestMainArgv0),
 /*add_exe_file_as_first_arg=*/true);
 info.GetArguments().AppendArgument("--gtest_filter=Host.FindProcesses");
 info.GetArguments().AppendArgument("--test-arg=48");
  std::promise<int> exit_status;
  info.SetMonitorProcessCallback([&](lldb::pid_t pid, int signal, int status) {
    exit_status.set_value(status);
  });
 ASSERT_THAT_ERROR(Host::LaunchProcess(info).takeError(), Succeeded());
 ASSERT_TRUE(Host::FindProcesses(match, processes));
  for (const auto &process : processes) {
    if (process.GetProcessID() == info.GetProcessID()) {
 ASSERT_EQ(process.GetExecutableFile().GetFilename(),
 info.GetExecutableFile().GetFilename());
      foundPID = true;
    }
 }
  ASSERT_TRUE(foundPID);
  auto clean_up = llvm::make_scope_exit([&] {
 Host::Kill(info.GetProcessID(), SIGKILL);
 exit_status.get_future().get();
  });
}
```
Same thing happens if you run HostTests.exe directly.

Working theory is that it is finding the wrong process and managing to SIGKILL the terminal itself.
</pre>
<img width="1" height="1" alt="" src="http://email.email.llvm.org/o/eJycVkuP4roS_jVmYzUKDjRhwSLNowdNz71zG65mGZmkQjzt2Dl2pR___qichAZ6FkdHQkTx46uqr76qivRenQzAks0e2Gw9ki1W1i3X8lUV-0blL4A4OtriY7m1rSk4Vspza_iTMtJZJuae_1KmsG9hNXU1P1oc84dW6YJrXRy59NxYV0vNleHyfPoArlZGas5EYizy3JrKemRiwWWwA4bFKYtSdh_1vyg1yvyWPK8gf7kj8LvWKLw586sC07l5AvQcLSdcjuDRM7EiZJ63zoGhxd4JMinNB7dYgftcfuudfVNa81xbD1wi97YG3lhlkBetU-YUMIOBMTkTpTtupHP2DQqukBf2zXC0X8M5bPYHJpJvIe4V3ypT_HQ2B-_BExFs_sCilPN9e_QfHqF-Tnc7Fq-2SsM-LNA1ur4zpWXxhvvhpGfxQ-cL56okksm_TLoTZ2LC4jWPLi1wzsSWiS1_VK8Qwmlkx5CqgTh0gE7BK3BlSsomKmu4PNoWuQddjq9RdthR9kJ_tM_fKCsKufK8sAbCeY8FcRKnlK0MKweyX_AaoMlK65hIzqfyyllj-wOQW1N4JpIJxUG_eIgE3hUykUSfi2y-Hrg4Wqt5SVL-uVtz4qGU2sNwu6f_SbYmr4jUEG-_22_ujEdpcqDtJ-WRN-ecXaNcHvwhMa94Tf9MJAfw-EMqk7rTa0Q5_I-sIRzpwtv81UrtPwMgJ8Z7wM075C3KowaSABNJUEID-VfMBROrEDtlJJVFkcE7ZKXSkEmflcp1amDxmomUiS26Fm4MPgKm7tTWYKhyEiYW47RpwBTDalgUd3enoK1SaQTH4jUJcnwjZvFvsQn6rnN0mlzhfOqncbZWlMSVMkhlQBLIPEpszzkZKPxhjULretdWUuujzF_I2uyBiXs2WzORUG_poVWRIW9UQVmiiqd2KfX5rbNxVUkXxsceMHuVmqhNzmcHl0iW57d0v988H7LDt_SQbZ6f__s8NIbgRifI3mkmkqBKsRijfIGNc6FQupzzfZvnAAUUw9Kthef_b66wbzKV9CJdXej6qsJK66if5NZ45LJFy5m4789yFqdX9y546dpQv0kCGMpk3XlK1UgFOejjZvsCrI9k879rvC_VQQw9AtKbkTWcObpU4T-9dNFg-HUDCZVz3ux6zfC4IX24dwEXCMw1SJO1TcDT-rXuMlPLF8h8bhvI-qZ2FulAxWcavyute2X8kb0V3-8ev--enj6NXyr1BJiVLbZu4OAE2F_9g1z7jnoxy_aSBkVF07CSVMmeEv5hW-5aE9w8hAEJ78AL5SBH_dFPy1_WvfRT1LoPGhFYSeynRalMMYzYN2fNaZBXmNm1NPIUtu0QXj-M-wmuMIynUbGMi0W8kCNYTubTRSImiZiNqqUQAmazySwX08Uc5FzMJyCLuCjzfLo4To8jtRSRmEX3k3gSx_NoNi6LaDI_LmazfF4kZSzYNIJaKj2mvI2tO42U9y0sJ9NpNJ-PtDyC9uHzSojQV6iHrZgQjZZIs5TFaf-dQVuz9cgtCeru2J48m0ZaEW1ncFSoYdkBzf0nsTyXrYevn1ekLls3GhD0R8j4qHV6WSE2noQTBvZJYdUex7mtmdgG_XWPu8bZ35AjE9sQlGdi28f1uhR_BwAA__9oozg5">