blob: 0a33193efe6aa8d010db07ccc02541478f6212b1 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2009 IBM Corporation and others. All rights reserved.
* This program and the accompanying materials are made available under the
* terms of the Eclipse Public License v1.0 which accompanies this distribution,
* and is available at http://www.eclipse.org/legal/epl-v10.html
*
* Contributors:
* IBM Corporation - initial implementation and ideas
******************************************************************************/
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));
SolverConfiguration configuration = new SolverConfiguration("paranoid", "1000c", true, false);
if (new SimplePlanner().getSolutionFor(pcr, configuration) 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, configuration) 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(), null);
}
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())));
SolverConfiguration configuration = new SolverConfiguration("paranoid", "1000c", true, false);
if (!(new SimplePlanner().getSolutionFor(pcr2, configuration) instanceof Collection))
System.err.println(iu);
}
}
}