def test_with_paths_ubuntu(self): """ucx building block with paths""" u = ucx(cuda='/cuda', gdrcopy='/gdrcopy', knem='/knem', ofed='/ofed', xpmem='/xpmem') self.assertEqual( str(u), r'''# UCX version 1.5.2 RUN apt-get update -y && \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ binutils-dev \ file \ libnuma-dev \ make \ wget && \ rm -rf /var/lib/apt/lists/* RUN mkdir -p /var/tmp && wget -q -nc --no-check-certificate -P /var/tmp https://github.com/openucx/ucx/releases/download/v1.5.2/ucx-1.5.2.tar.gz && \ mkdir -p /var/tmp && tar -x -f /var/tmp/ucx-1.5.2.tar.gz -C /var/tmp -z && \ cd /var/tmp/ucx-1.5.2 && ./configure --prefix=/usr/local/ucx --enable-optimizations --disable-logging --disable-debug --disable-assertions --disable-params-check --disable-doxygen-doc --with-cuda=/cuda --with-gdrcopy=/gdrcopy --with-knem=/knem --with-verbs=/ofed --with-rdmacm=/ofed --with-xpmem=/xpmem && \ make -j$(nproc) && \ make -j$(nproc) install && \ rm -rf /var/tmp/ucx-1.5.2.tar.gz /var/tmp/ucx-1.5.2 ENV LD_LIBRARY_PATH=/usr/local/ucx/lib:$LD_LIBRARY_PATH \ PATH=/usr/local/ucx/bin:$PATH''')
def test_git_repository_value(self): u = ucx(branch='v1.8.x', repository='https://github.com/openucx-fork/ucx.git') self.assertEqual( str(u), r'''# UCX https://github.com/openucx-fork/ucx.git v1.8.x RUN apt-get update -y && \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ autoconf \ automake \ binutils-dev \ ca-certificates \ file \ git \ libnuma-dev \ libtool \ make \ wget && \ rm -rf /var/lib/apt/lists/* RUN mkdir -p /var/tmp && cd /var/tmp && git clone --depth=1 --branch v1.8.x https://github.com/openucx-fork/ucx.git ucx && cd - && \ cd /var/tmp/ucx && \ ./autogen.sh && \ cd /var/tmp/ucx && ./configure --prefix=/usr/local/ucx --disable-assertions --disable-debug --disable-doxygen-doc --disable-logging --disable-params-check --enable-optimizations --with-cuda=/usr/local/cuda && \ make -j$(nproc) && \ make -j$(nproc) install && \ rm -rf /var/tmp/ucx ENV CPATH=/usr/local/ucx/include:$CPATH \ LD_LIBRARY_PATH=/usr/local/ucx/lib:$LD_LIBRARY_PATH \ LIBRARY_PATH=/usr/local/ucx/lib:$LIBRARY_PATH \ PATH=/usr/local/ucx/bin:$PATH''')
def test_with_false_ubuntu(self): """ucx building block with False values""" u = ucx(cuda=False, gdrcopy=False, knem=False, ofed=False, xpmem=False, version='1.8.0') self.assertEqual( str(u), r'''# UCX version 1.8.0 RUN apt-get update -y && \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ binutils-dev \ file \ libnuma-dev \ make \ wget && \ rm -rf /var/lib/apt/lists/* RUN mkdir -p /var/tmp && wget -q -nc --no-check-certificate -P /var/tmp https://github.com/openucx/ucx/releases/download/v1.8.0/ucx-1.8.0.tar.gz && \ mkdir -p /var/tmp && tar -x -f /var/tmp/ucx-1.8.0.tar.gz -C /var/tmp -z && \ cd /var/tmp/ucx-1.8.0 && ./configure --prefix=/usr/local/ucx --disable-assertions --disable-debug --disable-doxygen-doc --disable-logging --disable-params-check --enable-optimizations --without-cuda --without-gdrcopy --without-knem --without-rdmacm --without-verbs --without-xpmem && \ make -j$(nproc) && \ make -j$(nproc) install && \ rm -rf /var/tmp/ucx-1.8.0 /var/tmp/ucx-1.8.0.tar.gz ENV CPATH=/usr/local/ucx/include:$CPATH \ LD_LIBRARY_PATH=/usr/local/ucx/lib:$LD_LIBRARY_PATH \ LIBRARY_PATH=/usr/local/ucx/lib:$LIBRARY_PATH \ PATH=/usr/local/ucx/bin:$PATH''')
def test_runtime(self): """Runtime""" u = ucx() r = u.runtime() self.assertEqual( r, r'''# UCX COPY --from=0 /usr/local/ucx /usr/local/ucx ENV LD_LIBRARY_PATH=/usr/local/ucx/lib:$LD_LIBRARY_PATH \ PATH=/usr/local/ucx/bin:$PATH''')
def test_runtime(self): """Runtime""" u = ucx() r = u.runtime() self.assertEqual( r, r'''# UCX RUN apt-get update -y && \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ binutils && \ rm -rf /var/lib/apt/lists/* COPY --from=0 /usr/local/ucx /usr/local/ucx ENV LD_LIBRARY_PATH=/usr/local/ucx/lib:$LD_LIBRARY_PATH \ PATH=/usr/local/ucx/bin:$PATH''')
def test_environment(self): """environment option""" u = ucx(environment=False, version='1.4.0') self.assertEqual( str(u), r'''# UCX version 1.4.0 RUN apt-get update -y && \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ binutils-dev \ file \ libnuma-dev \ make \ wget && \ rm -rf /var/lib/apt/lists/* RUN mkdir -p /var/tmp && wget -q -nc --no-check-certificate -P /var/tmp https://github.com/openucx/ucx/releases/download/v1.4.0/ucx-1.4.0.tar.gz && \ mkdir -p /var/tmp && tar -x -f /var/tmp/ucx-1.4.0.tar.gz -C /var/tmp -z && \ cd /var/tmp/ucx-1.4.0 && ./configure --prefix=/usr/local/ucx --enable-optimizations --disable-logging --disable-debug --disable-assertions --disable-params-check --disable-doxygen-doc --with-cuda=/usr/local/cuda && \ make -j$(nproc) && \ make -j$(nproc) install && \ rm -rf /var/tmp/ucx-1.4.0.tar.gz /var/tmp/ucx-1.4.0''')
def test_defaults_centos(self): """Default ucx building block""" u = ucx() self.assertEqual( str(u), r'''# UCX version 1.5.2 RUN yum install -y \ binutils-devel \ file \ make \ numactl-devel \ wget && \ rm -rf /var/cache/yum/* RUN mkdir -p /var/tmp && wget -q -nc --no-check-certificate -P /var/tmp https://github.com/openucx/ucx/releases/download/v1.5.2/ucx-1.5.2.tar.gz && \ mkdir -p /var/tmp && tar -x -f /var/tmp/ucx-1.5.2.tar.gz -C /var/tmp -z && \ cd /var/tmp/ucx-1.5.2 && ./configure --prefix=/usr/local/ucx --enable-optimizations --disable-logging --disable-debug --disable-assertions --disable-params-check --disable-doxygen-doc --with-cuda=/usr/local/cuda && \ make -j$(nproc) && \ make -j$(nproc) install && \ rm -rf /var/tmp/ucx-1.5.2.tar.gz /var/tmp/ucx-1.5.2 ENV LD_LIBRARY_PATH=/usr/local/ucx/lib:$LD_LIBRARY_PATH \ PATH=/usr/local/ucx/bin:$PATH''')
def test_ppc64le(self): """ppc64le""" u = ucx(cuda=False, knem='/usr/local/knem', version='1.5.2') self.assertEqual( str(u), r'''# UCX version 1.5.2 RUN yum install -y \ binutils-devel \ file \ make \ numactl-devel \ wget && \ rm -rf /var/cache/yum/* RUN mkdir -p /var/tmp && wget -q -nc --no-check-certificate -P /var/tmp https://github.com/openucx/ucx/releases/download/v1.5.2/ucx-1.5.2.tar.gz && \ mkdir -p /var/tmp && tar -x -f /var/tmp/ucx-1.5.2.tar.gz -C /var/tmp -z && \ cd /var/tmp/ucx-1.5.2 && CFLAGS=-Wno-error=format ./configure --prefix=/usr/local/ucx --enable-optimizations --disable-logging --disable-debug --disable-assertions --disable-params-check --disable-doxygen-doc --without-cuda --with-knem=/usr/local/knem && \ make -j$(nproc) && \ make -j$(nproc) install && \ rm -rf /var/tmp/ucx-1.5.2.tar.gz /var/tmp/ucx-1.5.2 ENV LD_LIBRARY_PATH=/usr/local/ucx/lib:$LD_LIBRARY_PATH \ PATH=/usr/local/ucx/bin:$PATH''')
def test_defaults_ubuntu(self): """Default ucx building block""" u = ucx() self.assertEqual( str(u), r'''# UCX version 1.8.0 RUN apt-get update -y && \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ binutils-dev \ file \ libnuma-dev \ make \ wget && \ rm -rf /var/lib/apt/lists/* RUN mkdir -p /var/tmp && wget -q -nc --no-check-certificate -P /var/tmp https://github.com/openucx/ucx/releases/download/v1.8.0/ucx-1.8.0.tar.gz && \ mkdir -p /var/tmp && tar -x -f /var/tmp/ucx-1.8.0.tar.gz -C /var/tmp -z && \ cd /var/tmp/ucx-1.8.0 && ./configure --prefix=/usr/local/ucx --disable-assertions --disable-debug --disable-doxygen-doc --disable-logging --disable-params-check --enable-optimizations --with-cuda=/usr/local/cuda && \ make -j$(nproc) && \ make -j$(nproc) install && \ rm -rf /var/tmp/ucx-1.8.0 /var/tmp/ucx-1.8.0.tar.gz ENV LD_LIBRARY_PATH=/usr/local/ucx/lib:$LD_LIBRARY_PATH \ PATH=/usr/local/ucx/bin:$PATH''')
def test_ldconfig(self): """ldconfig option""" u = ucx(ldconfig=True, version='1.4.0') self.assertEqual( str(u), r'''# UCX version 1.4.0 RUN apt-get update -y && \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ binutils-dev \ file \ libnuma-dev \ make \ wget && \ rm -rf /var/lib/apt/lists/* RUN mkdir -p /var/tmp && wget -q -nc --no-check-certificate -P /var/tmp https://github.com/openucx/ucx/releases/download/v1.4.0/ucx-1.4.0.tar.gz && \ mkdir -p /var/tmp && tar -x -f /var/tmp/ucx-1.4.0.tar.gz -C /var/tmp -z && \ cd /var/tmp/ucx-1.4.0 && ./configure --prefix=/usr/local/ucx --disable-assertions --disable-debug --disable-doxygen-doc --disable-logging --disable-params-check --enable-optimizations --with-cuda=/usr/local/cuda && \ make -j$(nproc) && \ make -j$(nproc) install && \ echo "/usr/local/ucx/lib" >> /etc/ld.so.conf.d/hpccm.conf && ldconfig && \ rm -rf /var/tmp/ucx-1.4.0 /var/tmp/ucx-1.4.0.tar.gz ENV CPATH=/usr/local/ucx/include:$CPATH \ LIBRARY_PATH=/usr/local/ucx/lib:$LIBRARY_PATH \ PATH=/usr/local/ucx/bin:$PATH''')