/** * Copyright (c) 2009 - 2012 Red Hat, Inc. * * This software is licensed to you under the GNU General Public License, * version 2 (GPLv2). There is NO WARRANTY for this software, express or * implied, including the implied warranties of MERCHANTABILITY or FITNESS * FOR A PARTICULAR PURPOSE. You should have received a copy of GPLv2 * along with this software; if not, see * http://www.gnu.org/licenses/old-licenses/gpl-2.0.txt. * * Red Hat trademarks are not licensed under GPLv2. No permission is * granted to use or replicate Red Hat trademarks that are incorporated * in this software or its documentation. */ package org.candlepin.util; import static org.junit.Assert.*; import org.junit.Test; import java.util.Set; /** * ArchTest */ public class ArchTest { @Test public void testParseArches() { Set<String> arches = Arch.parseArches("x86,x86_64,ia64,s390x,ppc,s390,ppc64"); assertTrue(arches.contains("x86")); assertTrue(arches.contains("x86_64")); assertTrue(arches.contains("ia64")); assertTrue(arches.contains("s390x")); assertTrue(arches.contains("ppc")); assertTrue(arches.contains("s390")); assertTrue(arches.contains("ppc64")); assertEquals(7, arches.size()); } @Test public void testParseArchesTrailingComma() { Set<String> arches = Arch.parseArches("x86,x86_64,ia64,s390x,ppc,s390,ppc64,"); assertTrue(arches.contains("x86")); assertTrue(arches.contains("x86_64")); assertTrue(arches.contains("ia64")); assertTrue(arches.contains("s390x")); assertTrue(arches.contains("ppc")); assertTrue(arches.contains("s390")); assertTrue(arches.contains("ppc64")); assertEquals(7, arches.size()); } @Test public void testParseArchesLeadingComma() { String archString = ",x86"; Set<String> arches = Arch.parseArches(archString); assertTrue(arches.contains("x86")); assertEquals(1, arches.size()); } @Test public void testParseArchesLeadingCommas() { String archString = ",,,,x86"; Set<String> arches = Arch.parseArches(archString); assertTrue(arches.contains("x86")); assertEquals(1, arches.size()); } @Test public void testParseArchesMultipleCommas() { String archString = "x86,,,x86_64, , ,s390x"; Set<String> arches = Arch.parseArches(archString); assertTrue(arches.contains("x86")); assertEquals(3, arches.size()); } @Test public void testParseArchesMultipleSpaces() { String archString = "x86, x86_64, , ,s390x "; Set<String> arches = Arch.parseArches(archString); assertTrue(arches.contains("x86")); assertTrue(arches.contains("x86_64")); assertTrue(arches.contains("s390x")); assertEquals(3, arches.size()); } @Test public void testParseArchesSpuriousWhitespace() { String archString = " x86 , x86_64,ia64,s390x,ppc,s390, ppc64,"; Set<String> arches = Arch.parseArches(archString); assertTrue(arches.contains("x86")); assertTrue(arches.contains("x86_64")); assertTrue(arches.contains("ia64")); assertTrue(arches.contains("s390x")); assertTrue(arches.contains("ppc")); assertTrue(arches.contains("s390")); assertTrue(arches.contains("ppc64")); assertEquals(7, arches.size()); } @Test public void testParseArchesEmptyString() { String archString = ""; Set<String> arches = Arch.parseArches(archString); assertTrue(arches.isEmpty()); } @Test public void testParseArchesJustComma() { String archString = ","; Set<String> arches = Arch.parseArches(archString); assertTrue(arches.isEmpty()); } @Test public void testParseArchesDoubles() { String archString = "x86,x86,x86"; Set<String> arches = Arch.parseArches(archString); assertTrue(arches.contains("x86")); assertEquals(1, arches.size()); } @Test public void testParseArchesAll() { String archString = "ALL"; Set<String> arches = Arch.parseArches(archString); assertTrue(arches.contains("ALL")); assertEquals(1, arches.size()); } @Test public void testContentForConsumerExactMatch() { assertTrue(Arch.contentForConsumer("i386", "i386")); } @Test public void testContentForConsumerWrongArch() { assertFalse(Arch.contentForConsumer("i386", "s390x")); } @Test public void testContentFori686ForX8664() { assertFalse(Arch.contentForConsumer("i686", "x86_64")); } @Test public void testContentForConsumerX86Fori686() { assertTrue(Arch.contentForConsumer("x86", "i686")); } @Test public void testContentForConsumerX86Fori386() { assertTrue(Arch.contentForConsumer("x86", "i386")); } @Test public void testContentForConsumerX86ForX8664() { assertFalse(Arch.contentForConsumer("x86", "x86_64")); } @Test public void testContentForConsumerX86Fors390x() { assertFalse(Arch.contentForConsumer("x86", "s390x")); } @Test public void testContentForConsumeri386Fori686() { assertFalse(Arch.contentForConsumer("i686", "i386")); } @Test public void testContentForConsumeri686Fori586() { // an i586 can't use i686 content. Not that // RHEL or fedora run on an i586, but... assertFalse(Arch.contentForConsumer("i686", "i586")); } @Test public void testContentForConsumerPpcForPpc64() { assertFalse(Arch.contentForConsumer("ppc", "ppc64")); } @Test public void testContentForConsumerOthers() { assertFalse(Arch.contentForConsumer("s390", "x86_64")); assertFalse(Arch.contentForConsumer("s390x", "x86_64")); assertFalse(Arch.contentForConsumer("ppc", "x86_64")); assertFalse(Arch.contentForConsumer("ppc64", "x86_64")); assertFalse(Arch.contentForConsumer("ia64", "x86_64")); assertFalse(Arch.contentForConsumer("arm", "x86_64")); } @Test public void testContentForConsumerNoarch() { assertTrue(Arch.contentForConsumer("noarch", "x86_64")); assertTrue(Arch.contentForConsumer("noarch", "i386")); assertTrue(Arch.contentForConsumer("noarch", "i586")); assertTrue(Arch.contentForConsumer("noarch", "i686")); assertTrue(Arch.contentForConsumer("noarch", "ia64")); assertTrue(Arch.contentForConsumer("noarch", "ppc")); assertTrue(Arch.contentForConsumer("noarch", "ppc64")); assertTrue(Arch.contentForConsumer("noarch", "s390x")); assertTrue(Arch.contentForConsumer("noarch", "s390")); assertTrue(Arch.contentForConsumer("noarch", "z80")); } @Test public void testContentForConsumerAll() { assertTrue(Arch.contentForConsumer("ALL", "x86_64")); assertTrue(Arch.contentForConsumer("ALL", "i386")); assertTrue(Arch.contentForConsumer("ALL", "i586")); assertTrue(Arch.contentForConsumer("ALL", "i686")); assertTrue(Arch.contentForConsumer("ALL", "ia64")); assertTrue(Arch.contentForConsumer("ALL", "ppc")); assertTrue(Arch.contentForConsumer("ALL", "ppc64")); assertTrue(Arch.contentForConsumer("ALL", "s390x")); assertTrue(Arch.contentForConsumer("ALL", "s390")); assertTrue(Arch.contentForConsumer("ALL", "z80")); } }