/*******************************************************************************
* Copyright (c) 2009, 2016 Red Hat, Inc.
* 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:
* Elliott Baron <ebaron@redhat.com> - initial API and implementation
*******************************************************************************/
package org.eclipse.linuxtools.internal.valgrind.memcheck.tests;
import static org.junit.Assert.assertEquals;
import java.net.URL;
import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.IWorkspaceRunnable;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.FileLocator;
import org.eclipse.core.runtime.Path;
import org.junit.After;
import org.junit.Before;
public abstract class AbstractLinkedResourceMemcheckTest extends
AbstractMemcheckTest {
@Before
public void linkedResourceSetUp() throws Exception {
proj = createProject(getBundle(), "linkedTest"); //$NON-NLS-1$
// delete source folder and replace it with a link to its bundle
// location
final Exception[] ex = new Exception[1];
ResourcesPlugin.getWorkspace().run((IWorkspaceRunnable) monitor -> {
try {
URL location = FileLocator.find(getBundle(), new Path(
"resources/linkedTest/src"), null); //$NON-NLS-1$
IFolder srcFolder = proj.getProject().getFolder("src"); //$NON-NLS-1$
srcFolder.delete(true, null);
srcFolder.createLink(FileLocator.toFileURL(location)
.toURI(), IResource.REPLACE, null);
} catch (Exception e) {
ex[0] = e;
}
}, null);
if (ex[0] != null) {
throw ex[0];
}
assertEquals(0, proj.getBinaryContainer().getBinaries().length);
buildProject(proj);
}
@After
public void cleanupLinkedResource() throws CoreException {
deleteProject(proj);
}
}