/*******************************************************************************
* Copyright (c) 2011 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 API and implementation
*******************************************************************************/
package org.eclipse.equinox.p2.tests.planner;
import java.io.File;
import java.util.HashMap;
import java.util.Map;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.equinox.internal.p2.director.Slicer;
import org.eclipse.equinox.p2.engine.IProfileRegistry;
import org.eclipse.equinox.p2.metadata.IInstallableUnit;
import org.eclipse.equinox.p2.query.IQueryResult;
import org.eclipse.equinox.p2.query.QueryUtil;
import org.eclipse.equinox.p2.repository.metadata.IMetadataRepository;
import org.eclipse.equinox.p2.tests.AbstractProvisioningTest;
public class SlicerBug365124Test extends AbstractProvisioningTest {
private IMetadataRepository repo;
@Override
protected void setUp() throws Exception {
super.setUp();
File repoFile = getTestData("Repo for slicer test", "testData/slicerBug365124Test");
repo = getMetadataRepositoryManager().loadRepository(repoFile.toURI(), new NullProgressMonitor());
}
private Map<String, String> getProperties() {
Map<String, String> result = new HashMap<String, String>();
result.put("org.eclipse.equinox.p2.installFolder", "/Users/equinox/Downloads/eclipse");
result.put("osgi.nl", "en_US");
result.put("osgi.ws", "cocoa");
result.put("org.eclipse.equinox.p2.cache", "/Users/equinox/Downloads/eclipse");
result.put("org.eclipse.equinox.p2.cache.extensions", "file:/Users/equinox/Downloads/eclipse/.eclipseextension|file:/Users/equinox/Downloads/eclipse/configuration/org.eclipse.osgi/bundles/84/data/listener_1925729951/");
result.put("osgi.os", "macosx");
result.put("osgi.arch", "x86_64");
result.put("org.eclipse.update.install.features", "true");
result.put("eclipse.touchpoint.launcherName", "eclipse");
result.put("org.eclipse.equinox.p2.roaming", "true");
result.put("org.eclipse.equinox.p2.environments", "osgi.nl=en_US,osgi.ws=cocoa,osgi.arch=x86_64,osgi.os=macosx");
return result;
}
public void testSlice() {
Slicer slicer = new Slicer(getProfile(IProfileRegistry.SELF), getProperties(), true);
IQueryResult c = repo.query(QueryUtil.createIUAnyQuery(), new NullProgressMonitor());
slicer.slice((IInstallableUnit[]) c.toArray(IInstallableUnit.class), new NullProgressMonitor());
assertNotOK("1.0", slicer.getStatus());
}
}