|
@@ -29,7 +29,7 @@ namespace
|
|
|
{
|
|
|
constexpr NetworkRequestID RequestID(1, 1234);
|
|
|
constexpr int MaxProcessingWaitTimeMs = 60 * 1000; // Wait up to 1 minute. Give a generous amount of time to allow for slow CPUs
|
|
|
- const ScanFolderInfo TestScanFolderInfo("samplepath", "sampledisplayname", "samplekey", false, false);
|
|
|
+ const ScanFolderInfo TestScanFolderInfo("c:/samplepath", "sampledisplayname", "samplekey", false, false);
|
|
|
const AZ::Uuid BuilderUuid = AZ::Uuid::CreateRandom();
|
|
|
}
|
|
|
|
|
@@ -256,6 +256,16 @@ void RCcontrollerUnitTests::SetUp()
|
|
|
UnitTest::AssetProcessorUnitTestBase::SetUp();
|
|
|
m_rcController = AZStd::make_unique<AssetProcessor::RCController>(1, 4);
|
|
|
|
|
|
+ QDir assetRootPath(m_assetDatabaseRequestsHandler->GetAssetRootDir().c_str());
|
|
|
+
|
|
|
+ m_appManager->m_platformConfig->AddScanFolder(TestScanFolderInfo);
|
|
|
+ m_appManager->m_platformConfig->AddScanFolder(
|
|
|
+ AssetProcessor::ScanFolderInfo{ "c:/somerandomfolder", "scanfolder", "scanfolder", true, true, {}, 0, 1 });
|
|
|
+ m_appManager->m_platformConfig->AddScanFolder(
|
|
|
+ AssetProcessor::ScanFolderInfo{ "d:/test", "scanfolder2", "scanfolder2", true, true, {}, 0, 2 });
|
|
|
+ m_appManager->m_platformConfig->AddScanFolder(
|
|
|
+ AssetProcessor::ScanFolderInfo{ assetRootPath.absoluteFilePath("subfolder4"), "subfolder4", "subfolder4", false, true, {}, 0, 3 });
|
|
|
+
|
|
|
using namespace AssetProcessor;
|
|
|
m_rcJobListModel = m_rcController->GetQueueModel();
|
|
|
m_rcQueueSortModel = &m_rcController->m_RCQueueSortModel;
|
|
@@ -334,7 +344,7 @@ TEST_F(RCcontrollerUnitTests, TestCompileGroup_RequestExactMatchCompileGroup_Suc
|
|
|
}
|
|
|
|
|
|
TEST_F(RCcontrollerUnitTests, TestCompileGroup_RequestNoMatchCompileGroup_Succeeds)
|
|
|
-{
|
|
|
+{
|
|
|
bool gotCreated = false;
|
|
|
bool gotCompleted = false;
|
|
|
NetworkRequestID gotGroupID;
|
|
@@ -584,14 +594,6 @@ TEST_F(RCcontrollerUnitTests, TestRCController_StartRCJobWithCriticalLocking_Blo
|
|
|
|
|
|
EXPECT_TRUE(UnitTestUtils::CreateDummyFile(fileInUsePath, "xxx"));
|
|
|
|
|
|
- auto* appManager = AZ::Interface<IUnitTestAppManager>::Get();
|
|
|
-
|
|
|
- UNIT_TEST_EXPECT_FALSE(appManager == nullptr);
|
|
|
-
|
|
|
- auto& config = appManager->GetConfig();
|
|
|
- config.AddScanFolder(
|
|
|
- AssetProcessor::ScanFolderInfo{ tempPath.absoluteFilePath("subfolder4"), "subfolder4", "subfolder4", false, true, {}, 0, 3 }); // ID = 3 because this test setup already has 2 existing scanfolders
|
|
|
-
|
|
|
QFile lockFileTest(fileInUsePath);
|
|
|
#if defined(AZ_PLATFORM_WINDOWS)
|
|
|
// on windows, its enough to just open the file:
|
|
@@ -614,8 +616,6 @@ TEST_F(RCcontrollerUnitTests, TestRCController_StartRCJobWithCriticalLocking_Blo
|
|
|
jobDetailsToInitWith.m_scanFolder = &TestScanFolderInfo;
|
|
|
rcJob.Init(jobDetailsToInitWith);
|
|
|
|
|
|
- config.AddScanFolder(scanFolderInfo);
|
|
|
-
|
|
|
bool beginWork = false;
|
|
|
QObject::connect(&rcJob, &RCJob::BeginWork, this, [&beginWork]()
|
|
|
{
|
|
@@ -687,7 +687,7 @@ TEST_F(RCcontrollerUnitTests, TestRCController_FeedJobsWithDependencies_Dispatch
|
|
|
JobDetails jobdetailsA;
|
|
|
jobdetailsA.m_scanFolder = &TestScanFolderInfo;
|
|
|
jobdetailsA.m_assetBuilderDesc = m_assetBuilderDesc;
|
|
|
- jobdetailsA.m_jobEntry.m_sourceAssetReference = AssetProcessor::SourceAssetReference(scanFolderInfo.ScanPath(), "fileA.txt");
|
|
|
+ jobdetailsA.m_jobEntry.m_sourceAssetReference = AssetProcessor::SourceAssetReference(TestScanFolderInfo.ScanPath(), "fileA.txt");
|
|
|
jobdetailsA.m_jobEntry.m_platformInfo = { "pc" ,{ "desktop", "renderer" } };
|
|
|
jobdetailsA.m_jobEntry.m_jobKey = "TestJobA";
|
|
|
jobdetailsA.m_jobEntry.m_builderGuid = BuilderUuid;
|
|
@@ -714,7 +714,7 @@ TEST_F(RCcontrollerUnitTests, TestRCController_FeedJobsWithDependencies_Dispatch
|
|
|
JobDetails jobdetailsB;
|
|
|
jobdetailsB.m_scanFolder = &TestScanFolderInfo;
|
|
|
jobdetailsA.m_assetBuilderDesc = m_assetBuilderDesc;
|
|
|
- jobdetailsB.m_jobEntry.m_sourceAssetReference = AssetProcessor::SourceAssetReference(scanFolderInfo.ScanPath(), "fileB.txt");
|
|
|
+ jobdetailsB.m_jobEntry.m_sourceAssetReference = AssetProcessor::SourceAssetReference(TestScanFolderInfo.ScanPath(), "fileB.txt");
|
|
|
jobdetailsB.m_jobEntry.m_platformInfo = { "pc" ,{ "desktop", "renderer" } };
|
|
|
jobdetailsB.m_jobEntry.m_jobKey = "TestJobB";
|
|
|
jobdetailsB.m_jobEntry.m_builderGuid = BuilderUuid;
|
|
@@ -722,7 +722,7 @@ TEST_F(RCcontrollerUnitTests, TestRCController_FeedJobsWithDependencies_Dispatch
|
|
|
jobdetailsB.m_critical = true; //make jobB critical so that it will be analyzed first even though we want JobA to run first
|
|
|
|
|
|
AssetBuilderSDK::SourceFileDependency sourceFileADependency;
|
|
|
- sourceFileADependency.m_sourceFileDependencyPath = (AZ::IO::Path(scanFolderInfo.ScanPath().toUtf8().constData()) / "fileA.txt").Native();
|
|
|
+ sourceFileADependency.m_sourceFileDependencyPath = (AZ::IO::Path(TestScanFolderInfo.ScanPath().toUtf8().constData()) / "fileA.txt").Native();
|
|
|
|
|
|
// Make job B has an order job dependency on Job A
|
|
|
AssetBuilderSDK::JobDependency jobDependencyA("TestJobA", "pc", AssetBuilderSDK::JobDependencyType::Order, sourceFileADependency);
|
|
@@ -776,25 +776,26 @@ TEST_F(RCcontrollerUnitTests, TestRCController_FeedJobsWithCyclicDependencies_Al
|
|
|
JobDetails jobdetailsC;
|
|
|
jobdetailsC.m_scanFolder = &TestScanFolderInfo;
|
|
|
jobdetailsC.m_assetBuilderDesc = m_assetBuilderDesc;
|
|
|
- jobdetailsC.m_jobEntry.m_sourceAssetReference = AssetProcessor::SourceAssetReference(scanFolderInfo.ScanPath(), "fileC.txt");
|
|
|
+ jobdetailsC.m_jobEntry.m_sourceAssetReference = AssetProcessor::SourceAssetReference(TestScanFolderInfo.ScanPath(), "fileC.txt");
|
|
|
jobdetailsC.m_jobEntry.m_platformInfo = { "pc" ,{ "desktop", "renderer" } };
|
|
|
jobdetailsC.m_jobEntry.m_jobKey = "TestJobC";
|
|
|
jobdetailsC.m_jobEntry.m_builderGuid = BuilderUuid;
|
|
|
|
|
|
AssetBuilderSDK::SourceFileDependency sourceFileCDependency;
|
|
|
sourceFileCDependency.m_sourceFileDependencyPath =
|
|
|
- (AZ::IO::Path(scanFolderInfo.ScanPath().toUtf8().constData()) / "fileC.txt").Native();
|
|
|
+ (AZ::IO::Path(TestScanFolderInfo.ScanPath().toUtf8().constData()) / "fileC.txt").Native();
|
|
|
|
|
|
//Setting up Job D
|
|
|
JobDetails jobdetailsD;
|
|
|
jobdetailsD.m_scanFolder = &TestScanFolderInfo;
|
|
|
jobdetailsD.m_assetBuilderDesc = m_assetBuilderDesc;
|
|
|
- jobdetailsD.m_jobEntry.m_sourceAssetReference = AssetProcessor::SourceAssetReference(scanFolderInfo.ScanPath(), "fileD.txt");
|
|
|
+ jobdetailsD.m_jobEntry.m_sourceAssetReference = AssetProcessor::SourceAssetReference(TestScanFolderInfo.ScanPath(), "fileD.txt");
|
|
|
jobdetailsD.m_jobEntry.m_platformInfo = { "pc" ,{ "desktop", "renderer" } };
|
|
|
jobdetailsD.m_jobEntry.m_jobKey = "TestJobD";
|
|
|
jobdetailsD.m_jobEntry.m_builderGuid = BuilderUuid;
|
|
|
AssetBuilderSDK::SourceFileDependency sourceFileDDependency;
|
|
|
- sourceFileDDependency.m_sourceFileDependencyPath = (AZ::IO::Path(scanFolderInfo.ScanPath().toUtf8().constData()) / "fileD.txt").Native();
|
|
|
+ sourceFileDDependency.m_sourceFileDependencyPath =
|
|
|
+ (AZ::IO::Path(TestScanFolderInfo.ScanPath().toUtf8().constData()) / "fileD.txt").Native();
|
|
|
|
|
|
//creating cyclic job order dependencies i.e JobC and JobD have order job dependency on each other
|
|
|
AssetBuilderSDK::JobDependency jobDependencyC("TestJobC", "pc", AssetBuilderSDK::JobDependencyType::Order, sourceFileCDependency);
|
|
@@ -822,7 +823,8 @@ TEST_F(RCcontrollerUnitTests, TestRCController_FeedJobsWithCyclicDependencies_Al
|
|
|
int prevJobCount = m_rcJobListModel->itemCount();
|
|
|
MockRCJob rcJobAddAndDelete;
|
|
|
AssetProcessor::JobDetails jobDetailsToInitWithInsideScope;
|
|
|
- jobDetailsToInitWithInsideScope.m_jobEntry.m_sourceAssetReference = AssetProcessor::SourceAssetReference(scanFolderInfo.ScanPath(), "someFile0.txt");
|
|
|
+ jobDetailsToInitWithInsideScope.m_jobEntry.m_sourceAssetReference =
|
|
|
+ AssetProcessor::SourceAssetReference(TestScanFolderInfo.ScanPath(), "someFile0.txt");
|
|
|
jobDetailsToInitWithInsideScope.m_jobEntry.m_platformInfo = { "pc",{ "tools", "editor" } };
|
|
|
jobDetailsToInitWithInsideScope.m_jobEntry.m_jobKey = "Text files";
|
|
|
jobDetailsToInitWithInsideScope.m_jobEntry.m_sourceFileUUID = AZ::Uuid("{D013122E-CF2C-4534-A87D-F82570FBC2CD}");
|
|
@@ -832,7 +834,7 @@ TEST_F(RCcontrollerUnitTests, TestRCController_FeedJobsWithCyclicDependencies_Al
|
|
|
|
|
|
// verify that job was added
|
|
|
EXPECT_EQ(m_rcJobListModel->itemCount(), prevJobCount + 1);
|
|
|
- m_rcController->RemoveJobsBySource(AssetProcessor::SourceAssetReference(scanFolderInfo.ScanPath(), "someFile0.txt"));
|
|
|
+ m_rcController->RemoveJobsBySource(AssetProcessor::SourceAssetReference(TestScanFolderInfo.ScanPath(), "someFile0.txt"));
|
|
|
// verify that job was removed
|
|
|
EXPECT_EQ(m_rcJobListModel->itemCount(), prevJobCount);
|
|
|
}
|