From 246a70c4366aef3d68e50ceb7dd20b57fc87c6ac Mon Sep 17 00:00:00 2001 From: Bharat saraswal Date: Thu, 16 Jun 2016 13:24:06 +0530 Subject: [PATCH] [ONOS-4712] inter jar file linker unit test case. Change-Id: I566b9ce59cb37e664914f99263c597ead7ce5e11 --- .../plugin/manager/YangPluginUtils.java | 4 +- .../plugin/manager/InterJarLinkerTest.java | 353 ++++++++++++++++++ .../multi/onlab-test1-1.7.0-SNAPSHOT.jar | Bin 29354 -> 0 bytes .../multi/onlab-test2-1.7.0-SNAPSHOT.jar | Bin 37029 -> 0 bytes .../single/onlab-test1-1.7.0-SNAPSHOT.jar | Bin 29354 -> 0 bytes .../yangFiles/flowclassifier.yang | 175 +++++++++ .../yangFiles/portpair.yang | 137 +++++++ .../interJarFileLinking/yangFiles/test.yang | 29 ++ 8 files changed, 697 insertions(+), 1 deletion(-) create mode 100644 utils/yangutils/plugin/src/test/java/org/onosproject/yangutils/plugin/manager/InterJarLinkerTest.java delete mode 100644 utils/yangutils/plugin/src/test/resources/interJarFileLinking/jarFiles/multi/onlab-test1-1.7.0-SNAPSHOT.jar delete mode 100644 utils/yangutils/plugin/src/test/resources/interJarFileLinking/jarFiles/multi/onlab-test2-1.7.0-SNAPSHOT.jar delete mode 100644 utils/yangutils/plugin/src/test/resources/interJarFileLinking/jarFiles/single/onlab-test1-1.7.0-SNAPSHOT.jar create mode 100644 utils/yangutils/plugin/src/test/resources/interJarFileLinking/yangFiles/flowclassifier.yang create mode 100644 utils/yangutils/plugin/src/test/resources/interJarFileLinking/yangFiles/portpair.yang create mode 100644 utils/yangutils/plugin/src/test/resources/interJarFileLinking/yangFiles/test.yang diff --git a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/plugin/manager/YangPluginUtils.java b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/plugin/manager/YangPluginUtils.java index ef218d5a96..ccb43e35f2 100644 --- a/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/plugin/manager/YangPluginUtils.java +++ b/utils/yangutils/plugin/src/main/java/org/onosproject/yangutils/plugin/manager/YangPluginUtils.java @@ -32,6 +32,7 @@ import java.util.List; import java.util.Set; import java.util.jar.JarEntry; import java.util.jar.JarFile; + import org.apache.maven.artifact.repository.ArtifactRepository; import org.apache.maven.model.Dependency; import org.apache.maven.model.Resource; @@ -192,8 +193,9 @@ public final class YangPluginUtils { StringBuilder path = new StringBuilder(); List jarPaths = new ArrayList<>(); - for (Dependency dependency : project.getDependencies()) { + for (Object obj : project.getDependencies()) { + Dependency dependency = (Dependency) obj; path.append(localRepository.getBasedir()); path.append(SLASH); path.append(getPackageDirPathFromJavaJPackage(dependency.getGroupId())); diff --git a/utils/yangutils/plugin/src/test/java/org/onosproject/yangutils/plugin/manager/InterJarLinkerTest.java b/utils/yangutils/plugin/src/test/java/org/onosproject/yangutils/plugin/manager/InterJarLinkerTest.java new file mode 100644 index 0000000000..5efc477f16 --- /dev/null +++ b/utils/yangutils/plugin/src/test/java/org/onosproject/yangutils/plugin/manager/InterJarLinkerTest.java @@ -0,0 +1,353 @@ +/* + * Copyright 2016-present Open Networking Laboratory + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +package org.onosproject.yangutils.plugin.manager; + +import java.io.File; +import java.io.FileInputStream; +import java.io.FileOutputStream; +import java.io.IOException; +import java.util.ArrayList; +import java.util.Iterator; +import java.util.List; +import java.util.ListIterator; +import java.util.Set; +import java.util.jar.JarEntry; +import java.util.jar.JarOutputStream; + +import org.apache.maven.plugin.MojoExecutionException; +import org.apache.maven.project.MavenProject; +import org.junit.Test; +import org.onosproject.yangutils.datamodel.YangContainer; +import org.onosproject.yangutils.datamodel.YangDerivedInfo; +import org.onosproject.yangutils.datamodel.YangGrouping; +import org.onosproject.yangutils.datamodel.YangLeaf; +import org.onosproject.yangutils.datamodel.YangNode; +import org.onosproject.yangutils.utils.io.impl.YangFileScanner; +import org.onosproject.yangutils.utils.io.impl.YangPluginConfig; + +import static org.hamcrest.MatcherAssert.assertThat; +import static org.hamcrest.core.Is.is; +import static org.onosproject.yangutils.datamodel.YangDataTypes.DERIVED; +import static org.onosproject.yangutils.datamodel.YangDataTypes.STRING; +import static org.onosproject.yangutils.datamodel.utils.ResolvableStatus.RESOLVED; +import static org.onosproject.yangutils.plugin.manager.YangPluginUtils.deSerializeDataModel; +import static org.onosproject.yangutils.plugin.manager.YangPluginUtils.parseJarFile; +import static org.onosproject.yangutils.plugin.manager.YangPluginUtils.serializeDataModel; +import static org.onosproject.yangutils.utils.UtilConstants.SLASH; +import static org.onosproject.yangutils.utils.UtilConstants.TEMP; +import static org.onosproject.yangutils.utils.UtilConstants.YANG_RESOURCES; +import static org.onosproject.yangutils.utils.io.impl.YangIoUtils.deleteDirectory; + +/** + * Unit test case for inter jar linker. + */ +public class InterJarLinkerTest { + + private final YangUtilManager utilManager = new YangUtilManager(); + + private static final String TARGET = "target/interJarFileLinking/"; + private static final String YANG_FILES_DIR = "src/test/resources/interJarFileLinking/yangFiles/"; + private static final String TARGET_RESOURCE_PATH = SLASH + TEMP + SLASH + YANG_RESOURCES + SLASH; + private static final String JAR_FILE_NAME = "onlab-test-1.7.0-SNAPSHOT.jar"; + private static final String SER_FILE_NAME = "portPair.ser"; + + private static final String FLOW_CLASSIFIER_FOLDER = "target/interJarFileLinking/org/onosproject" + + "/yang/gen/v1/sfc/flowclassifier/rev20160524"; + private static final String PORT_PAIR_FOLDER = "target/interJarFileLinking/org/onosproject" + + "/yang/gen/v1/sfc/portpair/rev20160524"; + private static final String FLOW_CLASSIFIER_MANAGER = FLOW_CLASSIFIER_FOLDER + SLASH + "FlowClassifierManager.java"; + + /** + * Unit test case for a single jar dependency. + * + * @throws IOException when fails to do IO operations + * @throws MojoExecutionException when fails to do mojo operations + */ + @Test + public void processSingleJarLinking() + throws IOException, MojoExecutionException { + utilManager.createYangFileInfoSet(YangFileScanner.getYangFiles(YANG_FILES_DIR)); + + int size1 = utilManager.getYangFileInfoSet().size(); + utilManager.parseYangFileInfoSet(); + + provideTestJarFile(); + utilManager.setYangFileInfoSet(removeFileInfoFromSet(utilManager.getYangFileInfoSet())); + + for (String file : getListOfTestJar(TARGET)) { + addInterJarRootNodes(file); + } + + utilManager.resolveDependenciesUsingLinker(); + + int size2 = utilManager.getYangFileInfoSet().size(); + assertThat(true, is(size1 != size2)); + assertThat(true, is(parseFileInfoSet(utilManager.getYangFileInfoSet().iterator()))); + + deleteDirectory(TARGET); + deleteTestSerFile(); + } + + /** + * Unit test case for a multiple jar dependency. + * + * @throws IOException when fails to do IO operations + * @throws MojoExecutionException when fails to do mojo operations + */ + @Test + public void processMultipleJarLinking() + throws IOException, MojoExecutionException { + utilManager.createYangFileInfoSet(YangFileScanner.getYangFiles(YANG_FILES_DIR)); + + int size1 = utilManager.getYangFileInfoSet().size(); + utilManager.parseYangFileInfoSet(); + + provideTestJarFile(); + utilManager.setYangFileInfoSet(removeFileInfoFromSet(utilManager.getYangFileInfoSet())); + for (String file : getListOfTestJar(TARGET)) { + addInterJarRootNodes(file); + } + + utilManager.resolveDependenciesUsingLinker(); + int size2 = utilManager.getYangFileInfoSet().size(); + assertThat(true, is(size1 != size2)); + assertThat(true, is(parseFileInfoSet(utilManager.getYangFileInfoSet().iterator()))); + assertThat(true, is(parseFileInfoSet(utilManager.getYangFileInfoSet().iterator()))); + + /* + * grouping flow-classifier { + * container flow-classifier { + * leaf id { + * type flow-classifier-id; + * } + * + * leaf tenant-id { + * type port-pair:tenant-id; + * } + * . + * . + * . + * + */ + + Iterator yangFileInfoIterator = utilManager.getYangFileInfoSet().iterator(); + + YangFileInfo yangFileInfo = yangFileInfoIterator.next(); + + while (yangFileInfoIterator.hasNext()) { + if (yangFileInfo.getRootNode().getName().equals("flow-classifier")) { + break; + } + yangFileInfo = yangFileInfoIterator.next(); + } + + YangNode node = yangFileInfo.getRootNode(); + node = node.getChild(); + while (node != null) { + if (node instanceof YangGrouping) { + break; + } + node = node.getNextSibling(); + } + + node = node.getChild(); + ListIterator leafIterator = ((YangContainer) node).getListOfLeaf().listIterator(); + YangLeaf leafInfo = leafIterator.next(); + + assertThat(leafInfo.getName(), is("id")); + assertThat(leafInfo.getDataType().getDataTypeName(), is("flow-classifier-id")); + assertThat(leafInfo.getDataType().getDataType(), is(DERIVED)); + + leafInfo = leafIterator.next(); + + assertThat(leafInfo.getName(), is("tenant-id")); + assertThat(leafInfo.getDataType().getDataType(), is(DERIVED)); + + assertThat(true, is(((YangDerivedInfo) leafInfo.getDataType().getDataTypeExtendedInfo()).getReferredTypeDef() + .getName().equals("tenant-id"))); + + assertThat(leafInfo.getDataType().getResolvableStatus(), is(RESOLVED)); + + YangDerivedInfo derivedInfo = (YangDerivedInfo) leafInfo.getDataType().getDataTypeExtendedInfo(); + + // Check for the effective built-in type. + assertThat(derivedInfo.getEffectiveBuiltInType(), is(STRING)); + + YangPluginConfig yangPluginConfig = new YangPluginConfig(); + yangPluginConfig.setCodeGenDir(TARGET); + + utilManager.translateToJava(utilManager.getYangFileInfoSet(), yangPluginConfig); + + testIfFlowClassifierFilesExists(); + testIfPortPairFileDoesNotExist(); + deleteDirectory(TARGET); + deleteTestSerFile(); + } + + /** + * Test if flow classifier code is generated. + */ + private void testIfFlowClassifierFilesExists() { + File folder = new File(System.getProperty("user.dir") + SLASH + FLOW_CLASSIFIER_FOLDER); + File file = new File(System.getProperty("user.dir") + SLASH + FLOW_CLASSIFIER_MANAGER); + assertThat(true, is(folder.exists())); + assertThat(true, is(file.exists())); + } + + /** + * Tests if port pair code is not generated. + */ + private void testIfPortPairFileDoesNotExist() { + File folder = new File(System.getProperty("user.dir") + SLASH + PORT_PAIR_FOLDER); + assertThat(false, is(folder.exists())); + } + + /** + * Need to remove port-pair YANG file info from the set so , serialized file info can be + * tested. + * + * @param fileInfoSet YANG file info set + * @return updated file info set + */ + private Set removeFileInfoFromSet(Set fileInfoSet) { + String portPairFile = System.getProperty("user.dir") + SLASH + YANG_FILES_DIR + "portpair.yang"; + for (YangFileInfo fileInfo : fileInfoSet) { + if (fileInfo.getYangFileName().equals(portPairFile)) { + fileInfoSet.remove(fileInfo); + return fileInfoSet; + } + } + return fileInfoSet; + } + + /** + * Provides test jar files for linker. + * + * @throws IOException when fails to do IO operations + */ + private void provideTestJarFile() throws IOException { + + MavenProject project = new MavenProject(); + serializeDataModel(TARGET, utilManager.getYangFileInfoSet(), project, false); + createTestJar(); + } + + /** + * Deletes serialized file. + */ + private void deleteTestSerFile() { + File ser = new File(System.getProperty("user.dir") + SLASH + YANG_FILES_DIR + SER_FILE_NAME); + ser.delete(); + } + + /** + * Parses file info list and returns true if file info list contains the serialized file info. + * + * @param yangFileInfoIterator file info list iterator + * @return true if present + */ + private boolean parseFileInfoSet(Iterator yangFileInfoIterator) { + YangFileInfo yangFileInfo = yangFileInfoIterator.next(); + while (yangFileInfoIterator.hasNext()) { + if (yangFileInfo.getRootNode().getName().equals("port-pair")) { + return true; + } else if (yangFileInfo.getRootNode().getName().equals("flow-classifier")) { + return true; + } + yangFileInfo = yangFileInfoIterator.next(); + } + return false; + + } + + /** + * Returns list of test jar files. + * + * @param searchdir search directory + * @return list of test jar files + */ + private List getListOfTestJar(String searchdir) { + List jarFiles = new ArrayList<>(); + + File directory = new File(searchdir + "/"); + File[] files = directory.listFiles(); + + for (File file : files) { + if (!file.isDirectory()) { + jarFiles.add(file.toString()); + } + } + + return jarFiles; + } + + /** + * Adds data model nodes of jar to file info set. + * + * @param jarFile jar file name + * @throws IOException when fails to do IO operations + */ + private void addInterJarRootNodes(String jarFile) throws IOException { + try { + List interJarResolvedNodes = deSerializeDataModel(parseJarFile(jarFile, TARGET)); + + for (YangNode node : interJarResolvedNodes) { + YangFileInfo dependentFileInfo = new YangFileInfo(); + dependentFileInfo.setRootNode(node); + dependentFileInfo.setForTranslator(false); + dependentFileInfo.setYangFileName(node.getName()); + utilManager.getYangFileInfoSet().add(dependentFileInfo); + } + } catch (IOException e) { + throw new IOException("failed to resolve in interjar scenario."); + } + } + + /** + * Creates a temporary test jar files. + */ + private void createTestJar() { + + File file = new File(TARGET + TARGET_RESOURCE_PATH); + File[] files = file.listFiles(); + + String[] source = new String[files.length]; + + for (int i = 0; i < files.length; i++) { + source[i] = files[i].toString(); + } + byte[] buf = new byte[1024]; + + try { + String target = TARGET + JAR_FILE_NAME; + JarOutputStream out = new JarOutputStream(new FileOutputStream(target)); + for (String element : source) { + FileInputStream in = new FileInputStream(element); + out.putNextEntry(new JarEntry(element)); + int len; + while ((len = in.read(buf)) > 0) { + out.write(buf, 0, len); + } + out.closeEntry(); + in.close(); + } + out.close(); + } catch (IOException e) { + } + } + +} diff --git a/utils/yangutils/plugin/src/test/resources/interJarFileLinking/jarFiles/multi/onlab-test1-1.7.0-SNAPSHOT.jar b/utils/yangutils/plugin/src/test/resources/interJarFileLinking/jarFiles/multi/onlab-test1-1.7.0-SNAPSHOT.jar deleted file mode 100644 index 7e8459b90ec4c7a394cc1c19c3b63a1b76cffbc2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29354 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 diff --git a/utils/yangutils/plugin/src/test/resources/interJarFileLinking/jarFiles/single/onlab-test1-1.7.0-SNAPSHOT.jar b/utils/yangutils/plugin/src/test/resources/interJarFileLinking/jarFiles/single/onlab-test1-1.7.0-SNAPSHOT.jar deleted file mode 100644 index 7e8459b90ec4c7a394cc1c19c3b63a1b76cffbc2..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 29354 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