aboutsummaryrefslogtreecommitdiffstats
path: root/tests/auto/blackbox/testdata-joblimits/job-limits/job-limits.qbs
diff options
context:
space:
mode:
Diffstat (limited to 'tests/auto/blackbox/testdata-joblimits/job-limits/job-limits.qbs')
-rw-r--r--tests/auto/blackbox/testdata-joblimits/job-limits/job-limits.qbs93
1 files changed, 93 insertions, 0 deletions
diff --git a/tests/auto/blackbox/testdata-joblimits/job-limits/job-limits.qbs b/tests/auto/blackbox/testdata-joblimits/job-limits/job-limits.qbs
new file mode 100644
index 000000000..409849681
--- /dev/null
+++ b/tests/auto/blackbox/testdata-joblimits/job-limits/job-limits.qbs
@@ -0,0 +1,93 @@
+import qbs.TextFile
+
+Project {
+ property int projectJobCount
+ property int productJobCount
+ property int moduleJobCount
+ JobLimit {
+ condition: projectJobCount !== -1
+ jobPool: "singleton"
+ jobCount: projectJobCount
+ }
+ JobLimit {
+ condition: projectJobCount !== -1
+ jobPool: "singleton"
+ jobCount: 100
+ }
+ CppApplication {
+ name: "tool"
+ consoleApplication: true
+ cpp.cxxLanguageVersion: "c++14"
+ files: "main.cpp"
+ Group {
+ fileTagsFilter: "application"
+ fileTags: "tool_tag"
+ }
+ Export {
+ Rule {
+ alwaysRun: true
+ inputs: "tool_in"
+ explicitlyDependsOnFromDependencies: "tool_tag"
+ Artifact { filePath: input.completeBaseName + ".out"; fileTags: "tool_out" }
+ prepare: {
+ var cmd = new Command(explicitlyDependsOn.tool_tag[0].filePath,
+ [output.filePath]);
+ cmd.workingDirectory = product.buildDirectory;
+ cmd.description = "Running tool";
+ cmd.jobPool = "singleton";
+ return cmd;
+ }
+ }
+ JobLimit {
+ condition: project.moduleJobCount !== -1
+ jobPool: "singleton"
+ jobCount: project.moduleJobCount
+ }
+ JobLimit {
+ condition: project.moduleJobCount !== -1
+ jobPool: "singleton"
+ jobCount: 200
+ }
+ }
+ }
+ Product {
+ name: "p"
+ type: "tool_out"
+ Depends { name: "tool" }
+ Rule {
+ multiplex: true
+ outputFileTags: "tool_in"
+ outputArtifacts: {
+ var artifacts = [];
+ for (var i = 0; i < 7; ++i)
+ artifacts.push({filePath: "file" + i + ".in", fileTags: "tool_in"});
+ return artifacts;
+ }
+ prepare: {
+ var commands = [];
+ for (var i = 0; i < outputs.tool_in.length; ++i) {
+ var cmd = new JavaScriptCommand();
+ var output = outputs.tool_in[i];
+ cmd.output = output.filePath;
+ cmd.description = "generating " + output.fileName;
+ cmd.sourceCode = function() {
+ var f = new TextFile(output, TextFile.WriteOnly);
+ f.close();
+ }
+ commands.push(cmd);
+ };
+ return commands;
+ }
+ }
+ JobLimit {
+ condition: project.productJobCount !== -1
+ jobPool: "singleton"
+ jobCount: project.productJobCount
+ }
+ JobLimit {
+ condition: project.productJobCount !== -1
+ jobPool: "singleton"
+ jobCount: 300
+ }
+ }
+}