blob: 44fac3453f18f5f8a0f05f1ff4d867376664dca1 [file] [log] [blame]
/*******************************************************************************
* Copyright (c) 2007 compeople AG 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:
* compeople AG (Stefan Liebig) - initial API and implementation
*******************************************************************************/
package org.eclipse.equinox.p2.tests.artifact.optimizers;
import ie.wombat.jbdiff.JBDiff;
import java.io.*;
import java.util.Arrays;
import junit.framework.TestCase;
import org.eclipse.equinox.internal.p2.core.helpers.FileUtils;
import org.eclipse.equinox.p2.tests.TestData;
/**
* ... <code>Bug209233Test</code> ...
*/
public class Bug209233Test extends TestCase {
// public void testGenerateTestDataDiff() throws IOException {
// File predecessor = TestData.getTempFile("sar", "org.eclipse.jdt_3.2.0.v20060605-1400.sar");
// File current = TestData.getTempFile("sar", "org.eclipse.jdt_3.3.0.v20070607-1300.sar");
// File diff = File.createTempFile("org.eclipse.jdt_3.2.0-3.3.0~", ".jbdiff");
// JBDiff.bsdiff(predecessor, current, diff);
// }
public void testDiffJdt32SarToJdt33Sar() throws IOException {
InputStream current = TestData.get("sar", "org.eclipse.jdt_3.3.0.v20070607-1300.sar");
ByteArrayOutputStream currentBS = new ByteArrayOutputStream();
FileUtils.copyStream(current, true, currentBS, true);
byte[] currentBytes = currentBS.toByteArray();
InputStream predecessor = TestData.get("sar", "org.eclipse.jdt_3.2.0.v20060605-1400.sar");
ByteArrayOutputStream predecessorBS = new ByteArrayOutputStream();
FileUtils.copyStream(predecessor, true, predecessorBS, true);
byte[] predecessorBytes = predecessorBS.toByteArray();
byte[] actualBytes = JBDiff.bsdiff(predecessorBytes, predecessorBytes.length, currentBytes, currentBytes.length);
InputStream expected = TestData.get("optimizers", "org.eclipse.jdt_3.2.0-3.3.0.jbdiff");
ByteArrayOutputStream expectedBS = new ByteArrayOutputStream();
FileUtils.copyStream(expected, true, expectedBS, true);
byte[] expectedBytes = expectedBS.toByteArray();
assertEquals("Different lengths.", expectedBytes.length, actualBytes.length);
assertTrue("Different bytes.", Arrays.equals(expectedBytes, actualBytes));
}
}