Files
qt-creator/tests/unit/unittest/processcreator-test.cpp
Kai Köhne 56baf8c058 Remove GPL-3.0+ from license identifiers
Since we also license under GPL-3.0 WITH Qt-GPL-exception-1.0,
this applies only to a hypothetical newer version of GPL, that doesn't
exist yet. If such a version emerges, we can still decide to relicense...

While at it, replace (deprecated) GPL-3.0 with more explicit GPL-3.0-only

Change was done by running

  find . -type f -exec perl -pi -e "s/LicenseRef-Qt-Commercial OR GPL-3.0\+ OR GPL-3.0 WITH Qt-GPL-exception-1.0/LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0/g" {} \;

Change-Id: I5097e6ce8d10233993ee30d7e25120e2659eb10b
Reviewed-by: Eike Ziller <eike.ziller@qt.io>
2023-01-06 11:15:13 +00:00

100 lines
2.4 KiB
C++

// Copyright (C) 2016 The Qt Company Ltd.
// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only WITH Qt-GPL-exception-1.0
#include "googletest.h"
#include "eventspy.h"
#include <processcreator.h>
#include <processexception.h>
#include <processstartedevent.h>
#include <utils/hostosinfo.h>
#include <QProcess>
#include <future>
using testing::NotNull;
using ClangBackEnd::ProcessCreator;
using ClangBackEnd::ProcessException;
using ClangBackEnd::ProcessStartedEvent;
namespace {
class ProcessCreator : public testing::Test
{
protected:
void SetUp();
protected:
::ProcessCreator processCreator;
QStringList m_arguments = {QStringLiteral("connectionName")};
};
TEST_F(ProcessCreator, ProcessIsNotNull)
{
auto future = processCreator.createProcess();
auto process = future.get();
ASSERT_THAT(process.get(), NotNull());
}
TEST_F(ProcessCreator, ProcessIsRunning)
{
auto future = processCreator.createProcess();
auto process = future.get();
ASSERT_THAT(process->state(), QProcess::Running);
}
TEST_F(ProcessCreator, ProcessPathIsNotExisting)
{
processCreator.setProcessPath(Utils::HostOsInfo::withExecutableSuffix(ECHOSERVER"fail"));
auto future = processCreator.createProcess();
ASSERT_THROW(future.get(), ProcessException);
}
TEST_F(ProcessCreator, ProcessStartIsSucessfull)
{
auto future = processCreator.createProcess();
ASSERT_NO_THROW(future.get());
}
TEST_F(ProcessCreator, ProcessObserverGetsEvent)
{
EventSpy eventSpy(ProcessStartedEvent::ProcessStarted);
processCreator.setObserver(&eventSpy);
auto future = processCreator.createProcess();
eventSpy.waitForEvent();
}
TEST_F(ProcessCreator, TemporayPathIsSetForDefaultInitialization)
{
QString path = processCreator.temporaryDirectory().path();
ASSERT_THAT(path.size(), Gt(0));
}
TEST_F(ProcessCreator, TemporayPathIsResetted)
{
std::string oldPath = processCreator.temporaryDirectory().path().toStdString();
processCreator.resetTemporaryDirectory();
ASSERT_THAT(processCreator.temporaryDirectory().path().toStdString(),
AllOf(Not(IsEmpty()), Ne(oldPath)));
}
void ProcessCreator::SetUp()
{
processCreator.setTemporaryDirectoryPattern("process-XXXXXXX");
processCreator.resetTemporaryDirectory();
processCreator.setProcessPath(Utils::HostOsInfo::withExecutableSuffix(ECHOSERVER));
processCreator.setArguments(m_arguments);
}
}