def test_defaults_centos(self): """Default netcdf building block""" n = netcdf() self.assertEqual(str(n), r'''# NetCDF version 4.6.1, NetCDF C++ version 4.3.0, NetCDF Fortran # version 4.4.4 RUN yum install -y \ ca-certificates \ file \ libcurl-devel \ m4 \ make \ wget \ zlib-devel && \ rm -rf /var/cache/yum/* RUN mkdir -p /var/tmp && wget -q -nc --no-check-certificate -P /var/tmp https://www.unidata.ucar.edu/downloads/netcdf/ftp/netcdf-4.6.1.tar.gz && \ mkdir -p /var/tmp && tar -x -f /var/tmp/netcdf-4.6.1.tar.gz -C /var/tmp -z && \ cd /var/tmp/netcdf-4.6.1 && CPPFLAGS=-I/usr/local/hdf5/include LDFLAGS=-L/usr/local/hdf5/lib ./configure --prefix=/usr/local/netcdf && \ make -j4 && \ make -j4 install && \ rm -rf /var/tmp/netcdf-4.6.1.tar.gz /var/tmp/netcdf-4.6.1 && \ mkdir -p /var/tmp && wget -q -nc --no-check-certificate -P /var/tmp https://www.unidata.ucar.edu/downloads/netcdf/ftp/netcdf-cxx4-4.3.0.tar.gz && \ mkdir -p /var/tmp && tar -x -f /var/tmp/netcdf-cxx4-4.3.0.tar.gz -C /var/tmp -z && \ cd /var/tmp/netcdf-cxx4-4.3.0 && CPPFLAGS=-I/usr/local/netcdf/include LD_LIBRARY_PATH='/usr/local/netcdf/lib:$LD_LIBRARY_PATH' LDFLAGS=-L/usr/local/netcdf/lib ./configure --prefix=/usr/local/netcdf && \ make -j4 && \ make -j4 install && \ rm -rf /var/tmp/netcdf-cxx4-4.3.0.tar.gz /var/tmp/netcdf-cxx4-4.3.0 && \ mkdir -p /var/tmp && wget -q -nc --no-check-certificate -P /var/tmp https://www.unidata.ucar.edu/downloads/netcdf/ftp/netcdf-fortran-4.4.4.tar.gz && \ mkdir -p /var/tmp && tar -x -f /var/tmp/netcdf-fortran-4.4.4.tar.gz -C /var/tmp -z && \ cd /var/tmp/netcdf-fortran-4.4.4 && CPPFLAGS=-I/usr/local/netcdf/include LD_LIBRARY_PATH='/usr/local/netcdf/lib:$LD_LIBRARY_PATH' LDFLAGS=-L/usr/local/netcdf/lib ./configure --prefix=/usr/local/netcdf && \ make -j4 && \ make -j4 install && \ rm -rf /var/tmp/netcdf-fortran-4.4.4.tar.gz /var/tmp/netcdf-fortran-4.4.4 ENV LD_LIBRARY_PATH=/usr/local/netcdf/lib:$LD_LIBRARY_PATH \ PATH=/usr/local/netcdf/bin:$PATH''')
def test_defaults_centos(self): """Default netcdf building block""" n = netcdf() self.assertEqual(str(n), r'''# NetCDF version 4.7.3, NetCDF C++ version 4.3.1, NetCDF Fortran # version 4.5.2 RUN yum install -y \ ca-certificates \ file \ libcurl-devel \ m4 \ make \ wget \ zlib-devel && \ rm -rf /var/cache/yum/* RUN mkdir -p /var/tmp && wget -q -nc --no-check-certificate -P /var/tmp https://github.com/Unidata/netcdf-c/archive/v4.7.3.tar.gz && \ mkdir -p /var/tmp && tar -x -f /var/tmp/v4.7.3.tar.gz -C /var/tmp -z && \ cd /var/tmp/netcdf-c-4.7.3 && CPPFLAGS=-I/usr/local/hdf5/include LDFLAGS=-L/usr/local/hdf5/lib ./configure --prefix=/usr/local/netcdf && \ make -j$(nproc) && \ make -j$(nproc) install && \ rm -rf /var/tmp/v4.7.3.tar.gz /var/tmp/netcdf-c-4.7.3 && \ mkdir -p /var/tmp && wget -q -nc --no-check-certificate -P /var/tmp https://github.com/Unidata/netcdf-cxx4/archive/v4.3.1.tar.gz && \ mkdir -p /var/tmp && tar -x -f /var/tmp/v4.3.1.tar.gz -C /var/tmp -z && \ cd /var/tmp/netcdf-cxx4-4.3.1 && CPPFLAGS='-I/usr/local/netcdf/include -I/usr/local/hdf5/include' LD_LIBRARY_PATH='/usr/local/netcdf/lib:$LD_LIBRARY_PATH' LDFLAGS=-L/usr/local/netcdf/lib ./configure --prefix=/usr/local/netcdf && \ make -j$(nproc) && \ make -j$(nproc) install && \ rm -rf /var/tmp/v4.3.1.tar.gz /var/tmp/netcdf-cxx4-4.3.1 && \ mkdir -p /var/tmp && wget -q -nc --no-check-certificate -P /var/tmp https://github.com/Unidata/netcdf-fortran/archive/v4.5.2.tar.gz && \ mkdir -p /var/tmp && tar -x -f /var/tmp/v4.5.2.tar.gz -C /var/tmp -z && \ cd /var/tmp/netcdf-fortran-4.5.2 && CPPFLAGS='-I/usr/local/netcdf/include -I/usr/local/hdf5/include' LD_LIBRARY_PATH='/usr/local/netcdf/lib:$LD_LIBRARY_PATH' LDFLAGS=-L/usr/local/netcdf/lib ./configure --prefix=/usr/local/netcdf && \ make -j$(nproc) && \ make -j$(nproc) install && \ rm -rf /var/tmp/v4.5.2.tar.gz /var/tmp/netcdf-fortran-4.5.2 ENV LD_LIBRARY_PATH=/usr/local/netcdf/lib:$LD_LIBRARY_PATH \ PATH=/usr/local/netcdf/bin:$PATH''')
def test_runtime(self): """Runtime""" n = netcdf() r = n.runtime() self.assertEqual(r, r'''# NetCDF RUN apt-get update -y && \ apt-get install -y --no-install-recommends \ zlib1g && \ rm -rf /var/lib/apt/lists/* COPY --from=0 /usr/local/netcdf /usr/local/netcdf ENV LD_LIBRARY_PATH=/usr/local/netcdf/lib:$LD_LIBRARY_PATH \ PATH=/usr/local/netcdf/bin:$PATH''')
def test_runtime(self): """Runtime""" n = netcdf() r = n.runtime() self.assertEqual( r, r'''# NetCDF RUN apt-get update -y && \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ zlib1g && \ rm -rf /var/lib/apt/lists/* COPY --from=0 /usr/local/netcdf /usr/local/netcdf ENV CPATH=/usr/local/netcdf/include:$CPATH \ LD_LIBRARY_PATH=/usr/local/netcdf/lib:$LD_LIBRARY_PATH \ LIBRARY_PATH=/usr/local/netcdf/lib:$LIBRARY_PATH \ PATH=/usr/local/netcdf/bin:$PATH''')
def test_ldconfig(self): """ldconfig option""" n = netcdf(ldconfig=True, version='4.6.1', version_cxx='4.3.0', version_fortran='4.4.4') self.assertEqual( str(n), r'''# NetCDF version 4.6.1, NetCDF C++ version 4.3.0, NetCDF Fortran # version 4.4.4 RUN apt-get update -y && \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ ca-certificates \ file \ libcurl4-openssl-dev \ m4 \ make \ wget \ zlib1g-dev && \ rm -rf /var/lib/apt/lists/* RUN mkdir -p /var/tmp && wget -q -nc --no-check-certificate -P /var/tmp https://github.com/Unidata/netcdf-c/archive/v4.6.1.tar.gz && \ mkdir -p /var/tmp && tar -x -f /var/tmp/v4.6.1.tar.gz -C /var/tmp -z && \ cd /var/tmp/netcdf-c-4.6.1 && ./configure --prefix=/usr/local/netcdf && \ make -j$(nproc) && \ make -j$(nproc) install && \ echo "/usr/local/netcdf/lib" >> /etc/ld.so.conf.d/hpccm.conf && ldconfig && \ rm -rf /var/tmp/netcdf-c-4.6.1 /var/tmp/v4.6.1.tar.gz ENV CPATH=/usr/local/netcdf/include:$CPATH \ LIBRARY_PATH=/usr/local/netcdf/lib:$LIBRARY_PATH \ PATH=/usr/local/netcdf/bin:$PATH RUN mkdir -p /var/tmp && wget -q -nc --no-check-certificate -P /var/tmp https://github.com/Unidata/netcdf-cxx4/archive/v4.3.0.tar.gz && \ mkdir -p /var/tmp && tar -x -f /var/tmp/v4.3.0.tar.gz -C /var/tmp -z && \ cd /var/tmp/netcdf-cxx4-4.3.0 && ./configure --prefix=/usr/local/netcdf && \ make -j$(nproc) && \ make -j$(nproc) install && \ echo "/usr/local/netcdf/lib" >> /etc/ld.so.conf.d/hpccm.conf && ldconfig && \ rm -rf /var/tmp/netcdf-cxx4-4.3.0 /var/tmp/v4.3.0.tar.gz RUN mkdir -p /var/tmp && wget -q -nc --no-check-certificate -P /var/tmp https://github.com/Unidata/netcdf-fortran/archive/v4.4.4.tar.gz && \ mkdir -p /var/tmp && tar -x -f /var/tmp/v4.4.4.tar.gz -C /var/tmp -z && \ cd /var/tmp/netcdf-fortran-4.4.4 && ./configure --prefix=/usr/local/netcdf && \ make -j$(nproc) && \ make -j$(nproc) install && \ echo "/usr/local/netcdf/lib" >> /etc/ld.so.conf.d/hpccm.conf && ldconfig && \ rm -rf /var/tmp/netcdf-fortran-4.4.4 /var/tmp/v4.4.4.tar.gz''')
def test_ldconfig(self): """ldconfig option""" n = netcdf(ldconfig=True, version='4.6.1', version_cxx='4.3.0', version_fortran='4.4.4') self.assertEqual( str(n), r'''# NetCDF version 4.6.1, NetCDF C++ version 4.3.0, NetCDF Fortran # version 4.4.4 RUN apt-get update -y && \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ ca-certificates \ file \ libcurl4-openssl-dev \ m4 \ make \ wget \ zlib1g-dev && \ rm -rf /var/lib/apt/lists/* RUN mkdir -p /var/tmp && wget -q -nc --no-check-certificate -P /var/tmp ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-4.6.1.tar.gz && \ mkdir -p /var/tmp && tar -x -f /var/tmp/netcdf-4.6.1.tar.gz -C /var/tmp -z && \ cd /var/tmp/netcdf-4.6.1 && CPPFLAGS=-I/usr/local/hdf5/include LDFLAGS=-L/usr/local/hdf5/lib ./configure --prefix=/usr/local/netcdf && \ make -j$(nproc) && \ make -j$(nproc) install && \ echo "/usr/local/netcdf/lib" >> /etc/ld.so.conf.d/hpccm.conf && ldconfig && \ rm -rf /var/tmp/netcdf-4.6.1.tar.gz /var/tmp/netcdf-4.6.1 && \ mkdir -p /var/tmp && wget -q -nc --no-check-certificate -P /var/tmp ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-cxx4-4.3.0.tar.gz && \ mkdir -p /var/tmp && tar -x -f /var/tmp/netcdf-cxx4-4.3.0.tar.gz -C /var/tmp -z && \ cd /var/tmp/netcdf-cxx4-4.3.0 && CPPFLAGS=-I/usr/local/netcdf/include LD_LIBRARY_PATH='/usr/local/netcdf/lib:$LD_LIBRARY_PATH' LDFLAGS=-L/usr/local/netcdf/lib ./configure --prefix=/usr/local/netcdf && \ make -j$(nproc) && \ make -j$(nproc) install && \ rm -rf /var/tmp/netcdf-cxx4-4.3.0.tar.gz /var/tmp/netcdf-cxx4-4.3.0 && \ mkdir -p /var/tmp && wget -q -nc --no-check-certificate -P /var/tmp ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-fortran-4.4.4.tar.gz && \ mkdir -p /var/tmp && tar -x -f /var/tmp/netcdf-fortran-4.4.4.tar.gz -C /var/tmp -z && \ cd /var/tmp/netcdf-fortran-4.4.4 && CPPFLAGS=-I/usr/local/netcdf/include LD_LIBRARY_PATH='/usr/local/netcdf/lib:$LD_LIBRARY_PATH' LDFLAGS=-L/usr/local/netcdf/lib ./configure --prefix=/usr/local/netcdf && \ make -j$(nproc) && \ make -j$(nproc) install && \ rm -rf /var/tmp/netcdf-fortran-4.4.4.tar.gz /var/tmp/netcdf-fortran-4.4.4 ENV PATH=/usr/local/netcdf/bin:$PATH''')
def test_defaults_ubuntu(self): """Default netcdf building block""" n = netcdf() self.assertEqual( str(n), r'''# NetCDF version 4.7.3, NetCDF C++ version 4.3.1, NetCDF Fortran # version 4.5.2 RUN apt-get update -y && \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ ca-certificates \ file \ libcurl4-openssl-dev \ m4 \ make \ wget \ zlib1g-dev && \ rm -rf /var/lib/apt/lists/* RUN mkdir -p /var/tmp && wget -q -nc --no-check-certificate -P /var/tmp https://github.com/Unidata/netcdf-c/archive/v4.7.3.tar.gz && \ mkdir -p /var/tmp && tar -x -f /var/tmp/v4.7.3.tar.gz -C /var/tmp -z && \ cd /var/tmp/netcdf-c-4.7.3 && ./configure --prefix=/usr/local/netcdf && \ make -j$(nproc) && \ make -j$(nproc) install && \ rm -rf /var/tmp/netcdf-c-4.7.3 /var/tmp/v4.7.3.tar.gz ENV CPATH=/usr/local/netcdf/include:$CPATH \ LD_LIBRARY_PATH=/usr/local/netcdf/lib:$LD_LIBRARY_PATH \ LIBRARY_PATH=/usr/local/netcdf/lib:$LIBRARY_PATH \ PATH=/usr/local/netcdf/bin:$PATH RUN mkdir -p /var/tmp && wget -q -nc --no-check-certificate -P /var/tmp https://github.com/Unidata/netcdf-cxx4/archive/v4.3.1.tar.gz && \ mkdir -p /var/tmp && tar -x -f /var/tmp/v4.3.1.tar.gz -C /var/tmp -z && \ cd /var/tmp/netcdf-cxx4-4.3.1 && ./configure --prefix=/usr/local/netcdf && \ make -j$(nproc) && \ make -j$(nproc) install && \ rm -rf /var/tmp/netcdf-cxx4-4.3.1 /var/tmp/v4.3.1.tar.gz RUN mkdir -p /var/tmp && wget -q -nc --no-check-certificate -P /var/tmp https://github.com/Unidata/netcdf-fortran/archive/v4.5.2.tar.gz && \ mkdir -p /var/tmp && tar -x -f /var/tmp/v4.5.2.tar.gz -C /var/tmp -z && \ cd /var/tmp/netcdf-fortran-4.5.2 && ./configure --prefix=/usr/local/netcdf && \ make -j$(nproc) && \ make -j$(nproc) install && \ rm -rf /var/tmp/netcdf-fortran-4.5.2 /var/tmp/v4.5.2.tar.gz''')
def test_defaults_ubuntu(self): """Default netcdf building block""" n = netcdf() self.assertEqual( str(n), r'''# NetCDF version 4.7.0, NetCDF C++ version 4.3.0, NetCDF Fortran # version 4.4.5 RUN apt-get update -y && \ DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \ ca-certificates \ file \ libcurl4-openssl-dev \ m4 \ make \ wget \ zlib1g-dev && \ rm -rf /var/lib/apt/lists/* RUN mkdir -p /var/tmp && wget -q -nc --no-check-certificate -P /var/tmp ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-c-4.7.0.tar.gz && \ mkdir -p /var/tmp && tar -x -f /var/tmp/netcdf-c-4.7.0.tar.gz -C /var/tmp -z && \ cd /var/tmp/netcdf-c-4.7.0 && CPPFLAGS=-I/usr/local/hdf5/include LDFLAGS=-L/usr/local/hdf5/lib ./configure --prefix=/usr/local/netcdf && \ make -j$(nproc) && \ make -j$(nproc) install && \ rm -rf /var/tmp/netcdf-c-4.7.0.tar.gz /var/tmp/netcdf-c-4.7.0 && \ mkdir -p /var/tmp && wget -q -nc --no-check-certificate -P /var/tmp ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-cxx4-4.3.0.tar.gz && \ mkdir -p /var/tmp && tar -x -f /var/tmp/netcdf-cxx4-4.3.0.tar.gz -C /var/tmp -z && \ cd /var/tmp/netcdf-cxx4-4.3.0 && CPPFLAGS=-I/usr/local/netcdf/include LD_LIBRARY_PATH='/usr/local/netcdf/lib:$LD_LIBRARY_PATH' LDFLAGS=-L/usr/local/netcdf/lib ./configure --prefix=/usr/local/netcdf && \ make -j$(nproc) && \ make -j$(nproc) install && \ rm -rf /var/tmp/netcdf-cxx4-4.3.0.tar.gz /var/tmp/netcdf-cxx4-4.3.0 && \ mkdir -p /var/tmp && wget -q -nc --no-check-certificate -P /var/tmp ftp://ftp.unidata.ucar.edu/pub/netcdf/netcdf-fortran-4.4.5.tar.gz && \ mkdir -p /var/tmp && tar -x -f /var/tmp/netcdf-fortran-4.4.5.tar.gz -C /var/tmp -z && \ cd /var/tmp/netcdf-fortran-4.4.5 && CPPFLAGS=-I/usr/local/netcdf/include LD_LIBRARY_PATH='/usr/local/netcdf/lib:$LD_LIBRARY_PATH' LDFLAGS=-L/usr/local/netcdf/lib ./configure --prefix=/usr/local/netcdf && \ make -j$(nproc) && \ make -j$(nproc) install && \ rm -rf /var/tmp/netcdf-fortran-4.4.5.tar.gz /var/tmp/netcdf-fortran-4.4.5 ENV LD_LIBRARY_PATH=/usr/local/netcdf/lib:$LD_LIBRARY_PATH \ PATH=/usr/local/netcdf/bin:$PATH''')