詹金斯向应用程序控制台发送无效输入

时间:2021-06-10 19:19:45

标签: c++ windows jenkins console

我正在 Windows 上运行一个非常简单的 Jenkins 项目,它只调用一个可执行文件。可执行文件只是从控制台读取用户输入并将其打印回控制台。它有以下代码:

#include <iostream>

int main()
{
  int selection = 0;

  while (true)
  {
    std::cin >> selection;
    std::cout << "selection was: " << selection << '\n';

    if (std::cin.fail())
    {
      std::cin.clear();
      std::cin.ignore();
    }
  }

  return 0;
}

如果我在 Jenkins 的外部运行这个应用程序,它只会在我手动将输入输入到控制台(如预期)时完成循环迭代。

1
selection was: 1
2
selection was: 2
3
selection was: 3
4
selection was: 4
5
selection was: 5

但是,如果我在内部 Jenkins 中运行它,而不手动提供输入,那么 exe 会因无效输入而不间断/非常迅速地被发送垃圾邮件。

selection was: 0
selection was: 0
selection was: 0
selection was: 0
selection was: 0
selection was: 0
selection was: 0
selection was: 0
selection was: 0
selection was: 0
....repeated many times

std::cin 调用应该阻塞,直到收到输入。有谁知道输入的来源是什么,或者如何阻止它?我的假设是它一定是 Jenkins 中的东西,因为当然.. 在 Jenkins 之外运行时不存在这个问题。

谢谢!

0 个答案:

没有答案
相关问题