Files
XcodeGen/Tests/PerformanceTests/PerformanceTests.swift
T
Wendy Liga 43e40a9efc Added support for scheme management (#1142)
* wip

* Added scheme management metadata properties to TargetScheme

* wip

* Added Scheme.Management for metadata

* use sharedDefault

* move generateSchemeManagement to SchemeGenerator

* revert

* update changelog

* update docs

* update test case

* remove

* remove unused file

* revert

* changed on fixtures project

* Updated ProjectSpec docs index

* User Scheme.Management also for TargetSchemes, use XCUserData

* Changelog

* Switch XcodeProj back tuist/XcodeProj - 8.9.0

* Reindent TOC Docs/ProjectSpec.md

* Revert swift tools version

---------

Co-authored-by: Tieme van Veen <tiemevanveen@hotmail.com>
2023-02-24 09:49:57 +11:00

82 lines
2.4 KiB
Swift

import Foundation
import PathKit
import ProjectSpec
import XcodeGenKit
import XcodeProj
import XCTest
class GeneratedPerformanceTests: XCTestCase {
let basePath = Path.temporary + "XcodeGenPeformanceTests"
func testLoading() throws {
let project = try Project.testProject(basePath: basePath)
let specPath = basePath + "project.yaml"
try dumpYamlDictionary(project.toJSONDictionary(), path: specPath)
measure {
let spec = try! SpecFile(path: specPath,
variables: ProcessInfo.processInfo.environment)
_ = spec.resolvedDictionary()
}
}
func testGeneration() throws {
let project = try Project.testProject(basePath: basePath)
measure {
let generator = ProjectGenerator(project: project)
_ = try! generator.generateXcodeProject(userName: "someUser")
}
}
func testWriting() throws {
let project = try Project.testProject(basePath: basePath)
let generator = ProjectGenerator(project: project)
let xcodeProject = try generator.generateXcodeProject(userName: "someUser")
measure {
xcodeProject.pbxproj.invalidateUUIDs()
try! xcodeProject.write(path: project.defaultProjectPath)
}
}
}
let fixturePath = Path(#file).parent().parent() + "Fixtures"
class FixturePerformanceTests: XCTestCase {
let specPath = fixturePath + "TestProject/project.yml"
func testFixtureDecoding() throws {
measure {
_ = try! Project(path: specPath)
}
}
func testCacheFileGeneration() throws {
let specLoader = SpecLoader(version: "1.2")
_ = try specLoader.loadProject(path: specPath)
measure {
_ = try! specLoader.generateCacheFile()
}
}
func testFixtureGeneration() throws {
let project = try Project(path: specPath)
measure {
let generator = ProjectGenerator(project: project)
_ = try! generator.generateXcodeProject(userName: "someUser")
}
}
func testFixtureWriting() throws {
let project = try Project(path: specPath)
let generator = ProjectGenerator(project: project)
let xcodeProject = try generator.generateXcodeProject(userName: "someUser")
measure {
xcodeProject.pbxproj.invalidateUUIDs()
try! xcodeProject.write(path: project.defaultProjectPath)
}
}
}