Skip to content

Commit d5e3361

Browse files
committed
Migrate Workspace tests to new testing infrastructure #1
1 parent 10812ba commit d5e3361

File tree

2 files changed

+277
-284
lines changed

2 files changed

+277
-284
lines changed

Tests/WorkspaceTests/WorkspaceTests.swift

Lines changed: 0 additions & 273 deletions
Original file line numberDiff line numberDiff line change
@@ -1719,78 +1719,6 @@ final class WorkspaceTests: XCTestCase {
17191719
}
17201720
}
17211721

1722-
func testPackageGraphOnlyRootDependency() throws {
1723-
let path = AbsolutePath("/RootPkg")
1724-
let fs = InMemoryFileSystem()
1725-
let manifestGraph = try MockManifestGraph(at: path,
1726-
rootDeps: [
1727-
],
1728-
packages: [
1729-
MockPackage("B", version: v1),
1730-
],
1731-
fs: fs
1732-
)
1733-
let provider = manifestGraph.repoProvider!
1734-
1735-
let workspace = Workspace.createWith(
1736-
rootPackage: path,
1737-
manifestLoader: manifestGraph.manifestLoader,
1738-
delegate: TestWorkspaceDelegate(),
1739-
fileSystem: fs,
1740-
repositoryProvider: provider
1741-
)
1742-
let diagnostics = DiagnosticsEngine()
1743-
let root = PackageGraphRootInput(packages: [path], dependencies: [
1744-
.init(url: "/RootPkg/B", requirement: .exact(v1.asPD4Version), location: "rootB"),
1745-
])
1746-
1747-
let graph = workspace.loadPackageGraph(root: root, diagnostics: diagnostics)
1748-
XCTAssertFalse(diagnostics.hasErrors)
1749-
XCTAssertEqual(graph.rootPackages.map{$0.name}.sorted(), ["Root"])
1750-
XCTAssertEqual(graph.packages.map{$0.name}.sorted(), ["B", "Root"])
1751-
XCTAssertEqual(graph.targets.map{$0.name}.sorted(), ["B", "Root"])
1752-
XCTAssertEqual(graph.products.map{$0.name}.sorted(), ["B", "Root"])
1753-
}
1754-
1755-
func testPackageGraphWithGraphRootDependencies() throws {
1756-
let path = AbsolutePath("/RootPkg")
1757-
let fs = InMemoryFileSystem()
1758-
let manifestGraph = try MockManifestGraph(at: path,
1759-
rootDeps: [
1760-
MockDependency("A", version: Version(1, 0, 0)..<Version(1, .max, .max)),
1761-
],
1762-
packages: [
1763-
MockPackage("A", version: v1),
1764-
MockPackage("A", version: "1.5.1"),
1765-
MockPackage("B", version: v1),
1766-
],
1767-
fs: fs
1768-
)
1769-
let provider = manifestGraph.repoProvider!
1770-
try provider.specifierMap[manifestGraph.repo("A")]!.tag(name: "1.5.1")
1771-
1772-
let workspace = Workspace.createWith(
1773-
rootPackage: path,
1774-
manifestLoader: manifestGraph.manifestLoader,
1775-
delegate: TestWorkspaceDelegate(),
1776-
fileSystem: fs,
1777-
repositoryProvider: provider
1778-
)
1779-
let diagnostics = DiagnosticsEngine()
1780-
let root = PackageGraphRootInput(packages: [path], dependencies: [
1781-
.init(url: "/RootPkg/B", requirement: .exact(v1.asPD4Version), location: "rootB"),
1782-
.init(url: "/RootPkg/A", requirement: .exact(v1.asPD4Version), location: "rootA"),
1783-
])
1784-
1785-
let graph = workspace.loadPackageGraph(root: root, diagnostics: diagnostics)
1786-
XCTAssertFalse(diagnostics.hasErrors)
1787-
XCTAssertEqual(graph.rootPackages.map{$0.name}.sorted(), ["Root"])
1788-
XCTAssertEqual(graph.lookup("A").manifest.version, v1)
1789-
XCTAssertEqual(graph.packages.map{$0.name}.sorted(), ["A", "B", "Root"])
1790-
XCTAssertEqual(graph.targets.map{$0.name}.sorted(), ["A", "B", "Root"])
1791-
XCTAssertEqual(graph.products.map{$0.name}.sorted(), ["A", "B", "Root"])
1792-
}
1793-
17941722
func testDeletedCheckoutDirectory() throws {
17951723
fixture(name: "DependencyResolution/External/Simple") { path in
17961724
let barRoot = path.appending(component: "Bar")
@@ -1814,202 +1742,6 @@ final class WorkspaceTests: XCTestCase {
18141742
}
18151743
}
18161744

1817-
func testGraphData() throws {
1818-
let path = AbsolutePath("/RootPkg")
1819-
let fs = InMemoryFileSystem()
1820-
let manifestGraph = try MockManifestGraph(at: path,
1821-
rootDeps: [],
1822-
packages: [
1823-
MockPackage("A", version: v1),
1824-
MockPackage("A", version: "1.5.1"),
1825-
MockPackage("B", version: v1),
1826-
],
1827-
fs: fs)
1828-
let provider = manifestGraph.repoProvider!
1829-
try provider.specifierMap[manifestGraph.repo("A")]!.tag(name: "1.5.1")
1830-
1831-
let delegate = TestWorkspaceDelegate()
1832-
let workspace = Workspace.createWith(
1833-
rootPackage: path,
1834-
manifestLoader: manifestGraph.manifestLoader,
1835-
delegate: delegate,
1836-
fileSystem: fs,
1837-
repositoryProvider: provider)
1838-
let diagnostics = DiagnosticsEngine()
1839-
let root = PackageGraphRootInput(packages: [path], dependencies: [
1840-
.init(url: "/RootPkg/B", requirement: .exact(v1.asPD4Version), location: "rootB"),
1841-
.init(url: "/RootPkg/A", requirement: .exact(v1.asPD4Version), location: "rootA"),
1842-
])
1843-
1844-
let data = workspace.loadGraphData(root: root, diagnostics: diagnostics)
1845-
1846-
// Sanity.
1847-
XCTAssertFalse(diagnostics.hasErrors)
1848-
XCTAssertEqual(data.graph.rootPackages.map{$0.name}, ["Root"])
1849-
XCTAssertEqual(data.graph.packages.map{$0.name}.sorted(), ["A", "B", "Root"])
1850-
1851-
// Check package association.
1852-
XCTAssertEqual(data.dependencyMap[data.graph.lookup("A")]?.packageRef.identity, "a")
1853-
XCTAssertEqual(data.dependencyMap[data.graph.lookup("B")]?.packageRef.identity, "b")
1854-
1855-
let currentDeps = workspace.managedDependencies.values.map{$0.packageRef}
1856-
// Check delegates.
1857-
XCTAssertEqual(delegate.managedDependenciesData[0].map{$0.packageRef}, currentDeps)
1858-
1859-
// Load graph data again.
1860-
do {
1861-
let data = workspace.loadGraphData(root: root, diagnostics: diagnostics)
1862-
// Check package association.
1863-
XCTAssertEqual(data.dependencyMap[data.graph.lookup("A")]?.packageRef.identity, "a")
1864-
XCTAssertEqual(data.dependencyMap[data.graph.lookup("B")]?.packageRef.identity, "b")
1865-
}
1866-
1867-
XCTAssertEqual(delegate.managedDependenciesData[1].map{$0.packageRef}, currentDeps)
1868-
XCTAssertEqual(delegate.managedDependenciesData.count, 2)
1869-
}
1870-
1871-
func testIsResolutionRequired() throws {
1872-
let aRepo = RepositorySpecifier(url: "/A")
1873-
let bRepo = RepositorySpecifier(url: "/B")
1874-
let cRepo = RepositorySpecifier(url: "/C")
1875-
let aRef = PackageReference(identity: "a", path: aRepo.url)
1876-
let bRef = PackageReference(identity: "b", path: bRepo.url)
1877-
let cRef = PackageReference(identity: "c", path: cRepo.url)
1878-
let v1 = CheckoutState(revision: Revision(identifier: "hello"), version: "1.0.0")
1879-
let v1_1 = CheckoutState(revision: Revision(identifier: "hello"), version: "1.0.1")
1880-
let v1_5 = CheckoutState(revision: Revision(identifier: "hello"), version: "1.0.5")
1881-
let v2 = CheckoutState(revision: Revision(identifier: "hello"), version: "2.0.0")
1882-
1883-
let v1Range: VersionSetSpecifier = .range("1.0.0" ..< "2.0.0")
1884-
let v2Range: VersionSetSpecifier = .range("2.0.0" ..< "3.0.0")
1885-
1886-
let fs = InMemoryFileSystem()
1887-
1888-
let workspace = Workspace.createWith(rootPackage: .root, fileSystem: fs)
1889-
let pinsStore = try workspace.pinsStore.load()
1890-
1891-
// Test Empty case.
1892-
do {
1893-
let result = workspace.isResolutionRequired(dependencies: [], pinsStore: pinsStore)
1894-
XCTAssertEqual(result.resolve, false)
1895-
}
1896-
1897-
// Fill the pinsStore.
1898-
pinsStore.pin(packageRef: aRef, state: v1)
1899-
pinsStore.pin(packageRef: bRef, state: v1_5)
1900-
pinsStore.pin(packageRef: cRef, state: v2)
1901-
1902-
// Fill ManagedDependencies (all different than pins).
1903-
let managedDependencies = workspace.managedDependencies
1904-
managedDependencies[forIdentity: aRef.identity] = ManagedDependency(
1905-
packageRef: aRef, subpath: RelativePath("A"), checkoutState: v1_1)
1906-
managedDependencies[forIdentity: bRef.identity] = ManagedDependency(
1907-
packageRef: bRef, subpath: RelativePath("B"), checkoutState: v1_5)
1908-
managedDependencies[forIdentity: bRef.identity] = managedDependencies[forIdentity: bRef.identity]?.editedDependency(
1909-
subpath: RelativePath("B"), unmanagedPath: nil)
1910-
1911-
// We should need to resolve if input is not satisfiable.
1912-
do {
1913-
let result = workspace.isResolutionRequired(dependencies: [
1914-
RepositoryPackageConstraint(container: aRef, versionRequirement: v1Range),
1915-
RepositoryPackageConstraint(container: aRef, versionRequirement: v2Range),
1916-
], pinsStore: pinsStore)
1917-
1918-
XCTAssertEqual(result.resolve, true)
1919-
XCTAssertEqual(result.validPins.count, 3)
1920-
}
1921-
1922-
// We should need to resolve when pins don't satisfy the inputs.
1923-
do {
1924-
let result = workspace.isResolutionRequired(dependencies: [
1925-
RepositoryPackageConstraint(container: aRef, versionRequirement: v1Range),
1926-
RepositoryPackageConstraint(container: bRef, versionRequirement: v1Range),
1927-
RepositoryPackageConstraint(container: cRef, versionRequirement: v1Range),
1928-
], pinsStore: pinsStore)
1929-
1930-
XCTAssertEqual(result.resolve, true)
1931-
XCTAssertEqual(result.validPins.map({$0.identifier.repository.url}).sorted(), ["/A", "/B"])
1932-
}
1933-
1934-
// We should need to resolve if managed dependencies is out of sync with pins.
1935-
do {
1936-
let result = workspace.isResolutionRequired(dependencies: [
1937-
RepositoryPackageConstraint(container: aRef, versionRequirement: v1Range),
1938-
RepositoryPackageConstraint(container: bRef, versionRequirement: v1Range),
1939-
RepositoryPackageConstraint(container: cRef, versionRequirement: v2Range),
1940-
], pinsStore: pinsStore)
1941-
1942-
XCTAssertEqual(result.resolve, true)
1943-
XCTAssertEqual(result.validPins.map({$0.identifier.repository.url}).sorted(), ["/A", "/B", "/C"])
1944-
}
1945-
1946-
// We shouldn't need to resolve if everything is fine.
1947-
do {
1948-
managedDependencies[forIdentity: aRef.identity] = ManagedDependency(
1949-
packageRef: aRef, subpath: RelativePath("A"), checkoutState: v1)
1950-
managedDependencies[forIdentity: bRef.identity] = ManagedDependency(
1951-
packageRef: bRef, subpath: RelativePath("B"), checkoutState: v1_5)
1952-
managedDependencies[forIdentity: cRef.identity] = ManagedDependency(
1953-
packageRef: cRef, subpath: RelativePath("C"), checkoutState: v2)
1954-
1955-
let result = workspace.isResolutionRequired(dependencies: [
1956-
RepositoryPackageConstraint(container: aRef, versionRequirement: v1Range),
1957-
RepositoryPackageConstraint(container: bRef, versionRequirement: v1Range),
1958-
RepositoryPackageConstraint(container: cRef, versionRequirement: v2Range),
1959-
], pinsStore: pinsStore)
1960-
1961-
XCTAssertEqual(result.resolve, false)
1962-
XCTAssertEqual(result.validPins, [])
1963-
}
1964-
}
1965-
1966-
func testResolverCanHaveError() throws {
1967-
let v2: Version = "2.0.0"
1968-
let path = AbsolutePath("/RootPkg")
1969-
let fs = InMemoryFileSystem()
1970-
1971-
let manifestGraph = try MockManifestGraph(at: path,
1972-
rootDeps: [],
1973-
packages: [
1974-
MockPackage("A", version: v1, dependencies: [
1975-
MockDependency("AA", version: v1)
1976-
]),
1977-
MockPackage("B", version: v1, dependencies: [
1978-
MockDependency("AA", version: v2)
1979-
]),
1980-
MockPackage("AA", version: v1),
1981-
MockPackage("AA", version: v2),
1982-
],
1983-
fs: fs)
1984-
let provider = manifestGraph.repoProvider!
1985-
try provider.specifierMap[manifestGraph.repo("AA")]!.tag(name: "2.0.0")
1986-
1987-
let delegate = TestWorkspaceDelegate()
1988-
1989-
let workspace = Workspace.createWith(
1990-
rootPackage: path,
1991-
manifestLoader: manifestGraph.manifestLoader,
1992-
delegate: delegate,
1993-
fileSystem: fs,
1994-
repositoryProvider: provider)
1995-
1996-
let root = PackageGraphRootInput(packages: [], dependencies: [
1997-
.init(url: "/RootPkg/A", requirement: .exact(v1.asPD4Version), location: "A"),
1998-
.init(url: "/RootPkg/B", requirement: .exact(v1.asPD4Version), location: "B"),
1999-
])
2000-
2001-
let diagnostics = DiagnosticsEngine()
2002-
workspace.resolve(root: root, diagnostics: diagnostics)
2003-
2004-
// Check that we produce error.
2005-
DiagnosticsEngineTester(diagnostics) { result in
2006-
result.check(diagnostic: .contains("dependency graph is unresolvable;"), behavior: .error)
2007-
}
2008-
2009-
// There should be no extra fetches.
2010-
XCTAssertEqual(delegate.repoUpdates, [])
2011-
}
2012-
20131745
static var allTests = [
20141746
("testBasics", testBasics),
20151747
("testBranchAndRevision", testBranchAndRevision),
@@ -2032,13 +1764,8 @@ final class WorkspaceTests: XCTestCase {
20321764
("testToolsVersionRootPackages", testToolsVersionRootPackages),
20331765
("testTOTPackageEdit", testTOTPackageEdit),
20341766
("testLoadingRootManifests", testLoadingRootManifests),
2035-
("testPackageGraphWithGraphRootDependencies", testPackageGraphWithGraphRootDependencies),
2036-
("testPackageGraphOnlyRootDependency", testPackageGraphOnlyRootDependency),
20371767
("testDeletedCheckoutDirectory", testDeletedCheckoutDirectory),
2038-
("testGraphData", testGraphData),
20391768
("testSymlinkedDependency", testSymlinkedDependency),
2040-
("testIsResolutionRequired", testIsResolutionRequired),
2041-
("testResolverCanHaveError", testResolverCanHaveError),
20421769
("testCanUneditRemovedDependencies", testCanUneditRemovedDependencies)
20431770
]
20441771
}

0 commit comments

Comments
 (0)