blob: d852914d4cc8ee266fae597dfe4b2a5b0aa6e28c [file] [log] [blame]
package org.eclipse.equinox.p2.cudf.tests;
import java.io.File;
import java.util.Collection;
import java.util.Iterator;
import junit.framework.TestCase;
import org.eclipse.equinox.p2.cudf.Parser;
import org.eclipse.equinox.p2.cudf.metadata.*;
import org.eclipse.equinox.p2.cudf.query.*;
import org.eclipse.equinox.p2.cudf.solver.*;
public class Rand31de2d extends TestCase {
public void testLibdmx1() {
ProfileChangeRequest pcr = new Parser().parse(new File("/Users/pascal/dev/competition/org.eclipse.equinox.p2.cudf/success/rand31de2d-sol.cudf"));
pcr.addInstallableUnit(new RequiredCapability("libtext-wrapi18n-perl", VersionRange.emptyRange));
if (new SimplePlanner().getSolutionFor(pcr) instanceof Collection)
return;
String id = "libtext-wrapi18n-perl";
Version v = new Version(1);
QueryableArray res = null;
res = slice(pcr.getInitialState(), id, v);
restart: for (Iterator iterator = res.iterator(); iterator.hasNext();) {
InstallableUnit iu = (InstallableUnit) iterator.next();
if (iu.getId() == id)
continue;
System.out.println("Trying out: " + iu.getId());
ProfileChangeRequest pcr2 = new ProfileChangeRequest(res);
pcr2.addInstallableUnit(new RequiredCapability(iu.getId(), new VersionRange(iu.getVersion())));
if (!(new SimplePlanner().getSolutionFor(pcr2) instanceof Collection)) {
System.err.println(iu);
id = iu.getId();
v = iu.getVersion();
res = slice(pcr.getInitialState(), id, v);
continue restart;
}
}
}
private QueryableArray slice(QueryableArray input, String id, Version version) {
return new Slicer(input).slice((InstallableUnit) input.query(new CapabilityQuery(new RequiredCapability(id, new VersionRange(version))), new Collector(), null).iterator().next());
}
public void testValidateAll() {
ProfileChangeRequest pcr = new Parser().parse(new File("/Users/pascal/dev/competition/org.eclipse.equinox.p2.cudf/success/rand31de2d-sol.cudf"));
QueryableArray allIUs = pcr.getInitialState();
for (Iterator iterator = allIUs.iterator(); iterator.hasNext();) {
InstallableUnit iu = (InstallableUnit) iterator.next();
ProfileChangeRequest pcr2 = new ProfileChangeRequest(allIUs);
pcr2.addInstallableUnit(new RequiredCapability(iu.getId(), new VersionRange(iu.getVersion())));
if (!(new SimplePlanner().getSolutionFor(pcr2) instanceof Collection))
System.err.println(iu);
}
}
}