def test_toolchain(self):
     """Toolchain"""
     a = arm_allinea_studio(eula=True)
     tc = a.toolchain
     self.assertEqual(tc.CC, 'armclang')
     self.assertEqual(tc.CXX, 'armclang++')
     self.assertEqual(tc.FC, 'armflang')
     self.assertEqual(tc.F77, 'armflang')
     self.assertEqual(tc.F90, 'armflang')
예제 #2
0
    def test_runtime_centos(self):
        """Runtime"""
        a = arm_allinea_studio(eula=True)
        r = a.runtime()
        self.assertEqual(r,
r'''# Arm Allinea Studio
COPY --from=0 /opt/arm/gcc-8.2.0_Generic-AArch64_RHEL-7_aarch64-linux/lib64/*.so* /opt/arm/gcc-8.2.0_Generic-AArch64_RHEL-7_aarch64-linux/lib64/
COPY --from=0 /opt/arm/arm-hpc-compiler-19.3_Generic-AArch64_RHEL-7_aarch64-linux/lib/*.so* /opt/arm/arm-hpc-compiler-19.3_Generic-AArch64_RHEL-7_aarch64-linux/lib/
COPY --from=0 /opt/arm/arm-hpc-compiler-19.3_Generic-AArch64_RHEL-7_aarch64-linux/lib/clang/7.1.0/lib/linux/*.so* /opt/arm/arm-hpc-compiler-19.3_Generic-AArch64_RHEL-7_aarch64-linux/lib/clang/7.1.0/lib/linux/
COPY --from=0 /opt/arm/armpl-19.3.0_Generic-AArch64_RHEL-7_arm-hpc-compiler_19.3_aarch64-linux/lib/*.so* /opt/arm/armpl-19.3.0_Generic-AArch64_RHEL-7_arm-hpc-compiler_19.3_aarch64-linux/lib/
COPY --from=0 /opt/arm/arm-hpc-compiler-19.3_Generic-AArch64_RHEL-7_aarch64-linux/lib/clang/7.1.0/armpl_links/lib /opt/arm/arm-hpc-compiler-19.3_Generic-AArch64_RHEL-7_aarch64-linux/lib/clang/7.1.0/armpl_links/lib
ENV LD_LIBRARY_PATH=/opt/arm/gcc-8.2.0_Generic-AArch64_RHEL-7_aarch64-linux/lib64:/opt/arm/arm-hpc-compiler-19.3_Generic-AArch64_RHEL-7_aarch64-linux/lib:/opt/arm/arm-hpc-compiler-19.3_Generic-AArch64_RHEL-7_aarch64-linux/lib/clang/7.1.0/lib/linux:/opt/arm/armpl-19.3.0_Generic-AArch64_RHEL-7_arm-hpc-compiler_19.3_aarch64-linux/lib:$LD_LIBRARY_PATH''')
    def test_defaults_centos(self):
        """Default arm_allinea_studio building block"""
        a = arm_allinea_studio(eula=True)
        self.assertEqual(
            str(a), r'''# Arm Allinea Studio version 22.0
RUN yum install -y epel-release && \
    yum install -y \
        Lmod \
        glibc-devel \
        tar \
        wget && \
    rm -rf /var/cache/yum/*
RUN mkdir -p /var/tmp && wget -q -nc --no-check-certificate -P /var/tmp https://developer.arm.com/-/media/Files/downloads/hpc/arm-allinea-studio/22-0/ACfL/arm-compiler-for-linux_22.0_RHEL-7_aarch64.tar && \
    mkdir -p /var/tmp && tar -x -f /var/tmp/arm-compiler-for-linux_22.0_RHEL-7_aarch64.tar -C /var/tmp && \
    cd /var/tmp/arm-compiler-for-linux_22.0_RHEL-7 && ./arm-compiler-for-linux_22.0_RHEL-7.sh --install-to /opt/arm --accept && \
    rm -rf /var/tmp/arm-compiler-for-linux_22.0_RHEL-7_aarch64.tar /var/tmp/arm-compiler-for-linux_22.0_RHEL-7
ENV MODULEPATH=/opt/arm/modulefiles:$MODULEPATH''')
    def test_thunderx2_centos8(self):
        """Default arm_allinea_studio building block"""
        a = arm_allinea_studio(eula=True,
                               microarchitectures=['generic', 'thunderx2t99'])
        self.assertEqual(str(a),
r'''# Arm Allinea Studio version 20.0
RUN yum install -y epel-release && \
    yum install -y \
        Lmod \
        glibc-devel \
        tar \
        wget && \
    rm -rf /var/cache/yum/*
RUN mkdir -p /var/tmp && wget -q -nc --no-check-certificate -P /var/tmp https://developer.arm.com/-/media/Files/downloads/hpc/arm-allinea-studio/20-0/RHEL8/Arm-Compiler-for-Linux_20.0_RHEL_8_aarch64.tar && \
    mkdir -p /var/tmp && tar -x -f /var/tmp/Arm-Compiler-for-Linux_20.0_RHEL_8_aarch64.tar -C /var/tmp && \
    cd /var/tmp/Arm-Compiler-for-linux_20.0_AArch64_RHEL_8_aarch64 && ./arm-compiler-for-linux-20.0_Generic-AArch64_RHEL-8_aarch64-linux-rpm.sh --install-to /opt/arm --accept --only-install-microarchitectures=generic,thunderx2t99 && \
    rm -rf /var/tmp/Arm-Compiler-for-Linux_20.0_RHEL_8_aarch64.tar /var/tmp/Arm-Compiler-for-linux_20.0_AArch64_RHEL_8_aarch64
ENV MODULEPATH=/opt/arm/modulefiles:$MODULEPATH''')
    def test_defaults_ubuntu(self):
        """Default arm_allinea_studio building block"""
        a = arm_allinea_studio(eula=True)
        self.assertEqual(
            str(a), r'''# Arm Allinea Studio version 22.0
RUN apt-get update -y && \
    DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
        libc6-dev \
        lmod \
        python \
        tar \
        tcl \
        wget && \
    rm -rf /var/lib/apt/lists/*
RUN mkdir -p /var/tmp && wget -q -nc --no-check-certificate -P /var/tmp https://developer.arm.com/-/media/Files/downloads/hpc/arm-allinea-studio/22-0/ACfL/arm-compiler-for-linux_22.0_Ubuntu-20.04_aarch64.tar && \
    mkdir -p /var/tmp && tar -x -f /var/tmp/arm-compiler-for-linux_22.0_Ubuntu-20.04_aarch64.tar -C /var/tmp && \
    cd /var/tmp/arm-compiler-for-linux_22.0_Ubuntu-20.04 && ./arm-compiler-for-linux_22.0_Ubuntu-20.04.sh --install-to /opt/arm --accept && \
    rm -rf /var/tmp/arm-compiler-for-linux_22.0_Ubuntu-20.04_aarch64.tar /var/tmp/arm-compiler-for-linux_22.0_Ubuntu-20.04
ENV MODULEPATH=/opt/arm/modulefiles:$MODULEPATH''')
    def test_runtime_centos(self):
        """Runtime"""
        a = arm_allinea_studio(eula=True)
        r = a.runtime()
        self.assertEqual(
            r, r'''# Arm Allinea Studio
COPY --from=0 /opt/arm/arm-linux-compiler-22.0_Generic-AArch64_RHEL-7_aarch64-linux/lib/libgomp.so \
    /opt/arm/arm-linux-compiler-22.0_Generic-AArch64_RHEL-7_aarch64-linux/lib/libiomp5.so \
    /opt/arm/arm-linux-compiler-22.0_Generic-AArch64_RHEL-7_aarch64-linux/lib/libomp.so \
    /opt/arm/arm-linux-compiler-22.0_Generic-AArch64_RHEL-7_aarch64-linux/lib/libflang.so \
    /opt/arm/arm-linux-compiler-22.0_Generic-AArch64_RHEL-7_aarch64-linux/lib/libflangrti.so \
    /opt/arm/arm-linux-compiler-22.0_Generic-AArch64_RHEL-7_aarch64-linux/lib/
COPY --from=0 /opt/arm/armpl-22.0.0_AArch64_RHEL-7_arm-linux-compiler_aarch64-linux/lib/libamath.so \
    /opt/arm/armpl-22.0.0_AArch64_RHEL-7_arm-linux-compiler_aarch64-linux/lib/libastring.so \
    /opt/arm/armpl-22.0.0_AArch64_RHEL-7_arm-linux-compiler_aarch64-linux/lib/
COPY --from=0 /opt/arm/armpl-22.0.0_AArch64_RHEL-7_gcc_aarch64-linux/lib/libamath.so \
    /opt/arm/armpl-22.0.0_AArch64_RHEL-7_gcc_aarch64-linux/lib/libastring.so \
    /opt/arm/armpl-22.0.0_AArch64_RHEL-7_gcc_aarch64-linux/lib/
ENV LD_LIBRARY_PATH=/opt/arm/arm-linux-compiler-22.0_Generic-AArch64_RHEL-7_aarch64-linux/lib:/opt/arm/armpl-22.0.0_AArch64_RHEL-7_arm-linux-compiler_aarch64-linux/lib:/opt/arm/armpl-22.0.0_AArch64_RHEL-7_gcc_aarch64-linux/lib:$LD_LIBRARY_PATH'''
        )
예제 #7
0
    def test_defaults_centos(self):
        """Default arm_allinea_studio building block"""
        a = arm_allinea_studio(eula=True)
        self.assertEqual(str(a),
r'''# Arm Allinea Studio version 19.3
RUN yum install -y \
        glibc-devel \
        tar \
        wget && \
    rm -rf /var/cache/yum/*
RUN mkdir -p /var/tmp && wget -q -nc --no-check-certificate -P /var/tmp https://developer.arm.com/-/media/Files/downloads/hpc/arm-allinea-studio/19-3/RHEL7/Arm-Compiler-for-HPC_19.3_RHEL_7_aarch64.tar && \
    mkdir -p /var/tmp && tar -x -f /var/tmp/Arm-Compiler-for-HPC_19.3_RHEL_7_aarch64.tar -C /var/tmp && \
    cd /var/tmp/ARM-Compiler-for-HPC_19.3_AArch64_RHEL_7_aarch64 && ./arm-compiler-for-hpc-19.3_Generic-AArch64_RHEL-7_aarch64-linux-rpm.sh --install-to /opt/arm --accept && \
    rpm --erase $(rpm -qa | grep armpl | grep -v Generic-AArch64) && \
    rm -rf /var/tmp/Arm-Compiler-for-HPC_19.3_RHEL_7_aarch64.tar /var/tmp/ARM-Compiler-for-HPC_19.3_AArch64_RHEL_7_aarch64
ENV COMPILER_PATH=/opt/arm/gcc-8.2.0_Generic-AArch64_RHEL-7_aarch64-linux:$COMPILER_PATH \
    CPATH=/opt/arm/gcc-8.2.0_Generic-AArch64_RHEL-7_aarch64-linux/include:/opt/arm/arm-hpc-compiler-19.3_Generic-AArch64_RHEL-7_aarch64-linux/include:$CPATH \
    LD_LIBRARY_PATH=/opt/arm/gcc-8.2.0_Generic-AArch64_RHEL-7_aarch64-linux/lib:/opt/arm/gcc-8.2.0_Generic-AArch64_RHEL-7_aarch64-linux/lib64:/opt/arm/arm-hpc-compiler-19.3_Generic-AArch64_RHEL-7_aarch64-linux/lib:$LD_LIBRARY_PATH \
    LIBRARY_PATH=/opt/arm/gcc-8.2.0_Generic-AArch64_RHEL-7_aarch64-linux/lib:/opt/arm/gcc-8.2.0_Generic-AArch64_RHEL-7_aarch64-linux/lib64:/opt/arm/arm-hpc-compiler-19.3_Generic-AArch64_RHEL-7_aarch64-linux/lib:$LIBRARY_PATH \
    PATH=/opt/arm/gcc-8.2.0_Generic-AArch64_RHEL-7_aarch64-linux/bin:/opt/arm/arm-hpc-compiler-19.3_Generic-AArch64_RHEL-7_aarch64-linux/bin:$PATH''')
    def test_tarball(self):
        """tarball"""
        a = arm_allinea_studio(eula=True,
                               tarball='Arm-Compiler-for-Linux_20.0_Ubuntu_16.04_aarch64.tar')
        self.assertEqual(str(a),
r'''# Arm Allinea Studio version 20.0
RUN apt-get update -y && \
    DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
        libc6-dev \
        lmod \
        python \
        tar \
        tcl \
        wget && \
    rm -rf /var/lib/apt/lists/*
COPY Arm-Compiler-for-Linux_20.0_Ubuntu_16.04_aarch64.tar /var/tmp
RUN mkdir -p /var/tmp && tar -x -f /var/tmp/Arm-Compiler-for-Linux_20.0_Ubuntu_16.04_aarch64.tar -C /var/tmp && \
    cd /var/tmp/Arm-Compiler-for-linux_20.0_AArch64_Ubuntu_16.04_aarch64 && ./arm-compiler-for-linux-20.0_Generic-AArch64_Ubuntu-16.04_aarch64-linux-deb.sh --install-to /opt/arm --accept --only-install-microarchitectures=generic && \
    rm -rf /var/tmp/Arm-Compiler-for-Linux_20.0_Ubuntu_16.04_aarch64.tar /var/tmp/Arm-Compiler-for-linux_20.0_AArch64_Ubuntu_16.04_aarch64
ENV MODULEPATH=/opt/arm/modulefiles:$MODULEPATH''')
    def test_tarball(self):
        """tarball"""
        a = arm_allinea_studio(eula=True,
                               tarball='arm-compiler-for-linux_21.1_Ubuntu-18.04_aarch64.tar')
        self.assertEqual(str(a),
r'''# Arm Allinea Studio version 21.1
RUN apt-get update -y && \
    DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
        libc6-dev \
        lmod \
        python \
        tar \
        tcl \
        wget && \
    rm -rf /var/lib/apt/lists/*
COPY arm-compiler-for-linux_21.1_Ubuntu-18.04_aarch64.tar /var/tmp
RUN mkdir -p /var/tmp && tar -x -f /var/tmp/arm-compiler-for-linux_21.1_Ubuntu-18.04_aarch64.tar -C /var/tmp && \
    cd /var/tmp/arm-compiler-for-linux_21.1_Ubuntu-18.04 && ./arm-compiler-for-linux_21.1_Ubuntu-18.04.sh --install-to /opt/arm --accept && \
    rm -rf /var/tmp/arm-compiler-for-linux_21.1_Ubuntu-18.04_aarch64.tar /var/tmp/arm-compiler-for-linux_21.1_Ubuntu-18.04
ENV MODULEPATH=/opt/arm/modulefiles:$MODULEPATH''')
예제 #10
0
    def test_defaults_ubuntu(self):
        """Default arm_allinea_studio building block"""
        a = arm_allinea_studio(eula=True)
        self.assertEqual(str(a),
r'''# Arm Allinea Studio version 19.3
RUN apt-get update -y && \
    DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
        libc6-dev \
        python \
        tar \
        wget && \
    rm -rf /var/lib/apt/lists/*
RUN mkdir -p /var/tmp && wget -q -nc --no-check-certificate -P /var/tmp https://developer.arm.com/-/media/Files/downloads/hpc/arm-allinea-studio/19-3/Ubuntu16.04/Arm-Compiler-for-HPC_19.3_Ubuntu_16.04_aarch64.tar && \
    mkdir -p /var/tmp && tar -x -f /var/tmp/Arm-Compiler-for-HPC_19.3_Ubuntu_16.04_aarch64.tar -C /var/tmp && \
    cd /var/tmp/ARM-Compiler-for-HPC_19.3_AArch64_Ubuntu_16.04_aarch64 && ./arm-compiler-for-hpc-19.3_Generic-AArch64_Ubuntu-16.04_aarch64-linux-deb.sh --install-to /opt/arm --accept && \
    find /opt/arm -maxdepth 1 -type d -name "armpl-*" -not -name "*Generic-AArch64*" -print0 | xargs -0 rm -rf && \
    rm -rf /var/tmp/Arm-Compiler-for-HPC_19.3_Ubuntu_16.04_aarch64.tar /var/tmp/ARM-Compiler-for-HPC_19.3_AArch64_Ubuntu_16.04_aarch64
ENV COMPILER_PATH=/opt/arm/gcc-8.2.0_Generic-AArch64_Ubuntu-16.04_aarch64-linux:$COMPILER_PATH \
    CPATH=/opt/arm/gcc-8.2.0_Generic-AArch64_Ubuntu-16.04_aarch64-linux/include:/opt/arm/arm-hpc-compiler-19.3_Generic-AArch64_Ubuntu-16.04_aarch64-linux/include:$CPATH \
    LD_LIBRARY_PATH=/opt/arm/gcc-8.2.0_Generic-AArch64_Ubuntu-16.04_aarch64-linux/lib:/opt/arm/gcc-8.2.0_Generic-AArch64_Ubuntu-16.04_aarch64-linux/lib64:/opt/arm/arm-hpc-compiler-19.3_Generic-AArch64_Ubuntu-16.04_aarch64-linux/lib:$LD_LIBRARY_PATH \
    LIBRARY_PATH=/opt/arm/gcc-8.2.0_Generic-AArch64_Ubuntu-16.04_aarch64-linux/lib:/opt/arm/gcc-8.2.0_Generic-AArch64_Ubuntu-16.04_aarch64-linux/lib64:/opt/arm/arm-hpc-compiler-19.3_Generic-AArch64_Ubuntu-16.04_aarch64-linux/lib:$LIBRARY_PATH \
    PATH=/opt/arm/gcc-8.2.0_Generic-AArch64_Ubuntu-16.04_aarch64-linux/bin:/opt/arm/arm-hpc-compiler-19.3_Generic-AArch64_Ubuntu-16.04_aarch64-linux/bin:$PATH''')
예제 #11
0
    def test_tarball(self):
        """tarball"""
        a = arm_allinea_studio(eula=True,
                               tarball='Arm-Compiler-for-HPC_19.3_Ubuntu_16.04_aarch64.tar')
        self.assertEqual(str(a),
r'''# Arm Allinea Studio version 19.3
RUN apt-get update -y && \
    DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
        libc6-dev \
        python \
        tar \
        wget && \
    rm -rf /var/lib/apt/lists/*
COPY Arm-Compiler-for-HPC_19.3_Ubuntu_16.04_aarch64.tar /var/tmp
RUN mkdir -p /var/tmp && tar -x -f /var/tmp/Arm-Compiler-for-HPC_19.3_Ubuntu_16.04_aarch64.tar -C /var/tmp && \
    cd /var/tmp/ARM-Compiler-for-HPC_19.3_AArch64_Ubuntu_16.04_aarch64 && ./arm-compiler-for-hpc-19.3_Generic-AArch64_Ubuntu-16.04_aarch64-linux-deb.sh --install-to /opt/arm --accept && \
    find /opt/arm -maxdepth 1 -type d -name "armpl-*" -not -name "*Generic-AArch64*" -print0 | xargs -0 rm -rf && \
    rm -rf /var/tmp/Arm-Compiler-for-HPC_19.3_Ubuntu_16.04_aarch64.tar /var/tmp/ARM-Compiler-for-HPC_19.3_AArch64_Ubuntu_16.04_aarch64
ENV COMPILER_PATH=/opt/arm/gcc-8.2.0_Generic-AArch64_Ubuntu-16.04_aarch64-linux:$COMPILER_PATH \
    CPATH=/opt/arm/gcc-8.2.0_Generic-AArch64_Ubuntu-16.04_aarch64-linux/include:/opt/arm/arm-hpc-compiler-19.3_Generic-AArch64_Ubuntu-16.04_aarch64-linux/include:$CPATH \
    LD_LIBRARY_PATH=/opt/arm/gcc-8.2.0_Generic-AArch64_Ubuntu-16.04_aarch64-linux/lib:/opt/arm/gcc-8.2.0_Generic-AArch64_Ubuntu-16.04_aarch64-linux/lib64:/opt/arm/arm-hpc-compiler-19.3_Generic-AArch64_Ubuntu-16.04_aarch64-linux/lib:$LD_LIBRARY_PATH \
    LIBRARY_PATH=/opt/arm/gcc-8.2.0_Generic-AArch64_Ubuntu-16.04_aarch64-linux/lib:/opt/arm/gcc-8.2.0_Generic-AArch64_Ubuntu-16.04_aarch64-linux/lib64:/opt/arm/arm-hpc-compiler-19.3_Generic-AArch64_Ubuntu-16.04_aarch64-linux/lib:$LIBRARY_PATH \
    PATH=/opt/arm/gcc-8.2.0_Generic-AArch64_Ubuntu-16.04_aarch64-linux/bin:/opt/arm/arm-hpc-compiler-19.3_Generic-AArch64_Ubuntu-16.04_aarch64-linux/bin:$PATH''')
 def test_toolchain_thunderx2(self):
     """CPU target optimization flags"""
     a = arm_allinea_studio(eula=True)
     tc = a.toolchain
     self.assertEqual(tc.CFLAGS, '-mcpu=thunderx2t99')
     self.assertEqual(tc.CXXFLAGS, '-mcpu=thunderx2t99')
 def test_eula(self):
     """Decline EULA"""
     with self.assertRaises(RuntimeError):
         a = arm_allinea_studio(eula=False)
         str(a)