From f4a32d44d70adb5a795f7f69f58e3ec42dbc18c2 Mon Sep 17 00:00:00 2001 From: Debian Med Packaging Team Date: Sun, 2 Oct 2022 11:41:36 +0200 Subject: [PATCH] Truncate ex2.bam irrespective of its size MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Bug: https://github.com/pysam-developers/pysam/issues/1128 Applied-Upstream: 56b1624c21b02762fdcea3aa5f657a4152ca178e Reviewed-by: Étienne Mollier Last-Update: 2022-10-02 The Makefile also builds ex2.bam from ex2.sam via `samtools view`. Samtools as traditionally built using zlib typically generates a 124703-byte file, whereas when built using libdeflate it typically generates a 122804-byte file -- but `head -c 124000` leaves that unchanged and the test cases fail because ex2_truncated.bam is unexpectedly valid. Rewrite the truncation rule to remove the final 512 bytes, irrespective of ex2.bam's length. (No practical compression will reduce it to less than 512 bytes in total, so this is safe.) Fixes #1128. Last-Update: 2022-10-02 Gbp-Pq: Name test-truncated-bam.patch --- tests/pysam_data/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/tests/pysam_data/Makefile b/tests/pysam_data/Makefile index aa82031..52d9352 100644 --- a/tests/pysam_data/Makefile +++ b/tests/pysam_data/Makefile @@ -70,7 +70,7 @@ ex1.pileup.gz:ex1.bam ex1.fa samtools mpileup -f ex1.fa ex1.bam | gzip > ex1.pileup.gz ex2_truncated.bam: ex2.bam - head -c 124000 ex2.bam > ex2_truncated.bam + dd if=ex2.bam of=ex2_truncated.bam bs=$$((`wc -c < ex2.bam`-512)) count=1 # Append a corrupt read with block_size < sizeof(bam_core_t fields) ex2_corrupt.bam: ex2.bam -- 2.30.2