*** empty log message ***
diff --git a/org.eclipse.equinox.p2.cudf/tests/org/eclipse/equinox/p2/cudf/tests/ParserTest.java b/org.eclipse.equinox.p2.cudf/tests/org/eclipse/equinox/p2/cudf/tests/ParserTest.java
index 1043523..a1b30ea 100644
--- a/org.eclipse.equinox.p2.cudf/tests/org/eclipse/equinox/p2/cudf/tests/ParserTest.java
+++ b/org.eclipse.equinox.p2.cudf/tests/org/eclipse/equinox/p2/cudf/tests/ParserTest.java
@@ -44,6 +44,7 @@
}
}
assertRequirement(new RequiredCapability("f", new VersionRange(new Version(5), true, Version.maxVersion, true)), iu.getRequiredCapabilities());
+ assertRequirement(new NotRequirement(new RequiredCapability("g", VersionRange.emptyRange)), iu.getRequiredCapabilities());
}
public void testCheckPackageLibcbin() {
@@ -55,6 +56,42 @@
assertRequirement(new NotRequirement(new RequiredCapability("libc6.1", new VersionRange(Version.emptyVersion, true, new Version(1), false))), iu.getRequiredCapabilities());
}
+ public void testCheckLibx11data() {
+ InstallableUnit iu = getIU("libx11-data");
+ assertEquals(true, iu.isSingleton());
+ }
+
+ public void testlibtextCharwidthPerl() {
+ InstallableUnit iu = getIU("libtext-charwidth-perl");
+ assertEquals(true, iu.isSingleton());
+ assertRequirement(new RequiredCapability("libc6", new VersionRange(new Version(1), true, Version.maxVersion, true)), iu.getRequiredCapabilities());
+ assertRequirement(new RequiredCapability("perl-base", new VersionRange(new Version(12), true, Version.maxVersion, true)), iu.getRequiredCapabilities());
+ IRequiredCapability[] reqs = iu.getRequiredCapabilities();
+ for (int i = 0; i < reqs.length; i++) {
+ if (reqs[i] instanceof ORRequirement) {
+ assertRequirement(new RequiredCapability("perlapi-5.10.0--virtual", VersionRange.emptyRange), ((ORRequirement) reqs[i]).getRequirements());
+ assertRequirement(new RequiredCapability("perlapi-5.10.0", VersionRange.emptyRange), ((ORRequirement) reqs[i]).getRequirements());
+ }
+ }
+ assertNotRequirement(new NotRequirement(new RequiredCapability("libtext-charwidth-perl", VersionRange.emptyRange)), iu.getRequiredCapabilities());
+ }
+
+ public void testFoo() {
+ InstallableUnit iu = getIU("foo");
+ assertEquals(false, iu.isSingleton());
+ assertProvide(new ProvidedCapability("x", VersionRange.emptyRange), iu.getProvidedCapabilities());
+ assertRequirement(new NotRequirement(new RequiredCapability("x", VersionRange.emptyRange)), iu.getRequiredCapabilities());
+ }
+
+ private void assertNotRequirement(IRequiredCapability asserted, IRequiredCapability[] reqs) {
+ for (int i = 0; i < reqs.length; i++) {
+ if (asserted.getName().equals(reqs[i].getName())) {
+ if (asserted.getRange().equals(reqs[i].getRange()) && asserted.getArity() == reqs[i].getArity() && asserted.isNegation() == reqs[i].isNegation())
+ fail("Requirement not expected:" + asserted);
+ }
+ }
+ }
+
private void assertRequirement(IRequiredCapability asserted, IRequiredCapability[] reqs) {
boolean found = true;
for (int i = 0; i < reqs.length; i++) {
@@ -67,6 +104,16 @@
assertEquals(true, found);
}
+ private void assertProvide(IProvidedCapability asserted, IProvidedCapability[] caps) {
+ boolean found = true;
+ for (int i = 0; i < caps.length; i++) {
+ if (asserted.getName().equals(caps[i].getName())) {
+ assertEquals(asserted.getVersion(), caps[i].getVersion());
+ }
+ }
+ assertEquals(true, found);
+ }
+
public void testCheckPackageNegatedDepends() {
InstallableUnit iu = getIU("negatedDepends");
assertRequirement(new NotRequirement(new RequiredCapability("a", new VersionRange(new Version(2)))), iu.getRequiredCapabilities());
diff --git a/org.eclipse.equinox.p2.cudf/tests/testData/parsingTest.cudf b/org.eclipse.equinox.p2.cudf/tests/testData/parsingTest.cudf
index 86aa357..9c71663 100644
--- a/org.eclipse.equinox.p2.cudf/tests/testData/parsingTest.cudf
+++ b/org.eclipse.equinox.p2.cudf/tests/testData/parsingTest.cudf
@@ -47,6 +47,11 @@
sourceversion: 0.04-6
installedsize: 36
+package: foo
+version: 1
+conflicts: x
+provides: x
+
request: SAMPLE-DATA
install: a