summaryrefslogtreecommitdiffstats
path: root/image/test/reftest/bmp/bmpsuite/q
diff options
context:
space:
mode:
Diffstat (limited to 'image/test/reftest/bmp/bmpsuite/q')
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/pal1huff.bmpbin0 -> 2151 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/pal1p1.bmpbin0 -> 1082 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/pal1p1.pngbin0 -> 124 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/pal2.bmpbin0 -> 2118 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/pal2color.bmpbin0 -> 2118 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/pal4rlecut.bmpbin0 -> 3610 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/pal4rlecut.pngbin0 -> 1918 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/pal4rletrns.bmpbin0 -> 4326 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/pal4rletrns.pngbin0 -> 1465 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/pal8.pngbin0 -> 3772 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/pal8offs.bmpbin0 -> 9354 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/pal8os2-hs.bmpbin0 -> 8986 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/pal8os2-sz.bmpbin0 -> 8986 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/pal8os2sp.bmpbin0 -> 8974 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/pal8os2v2-16.bmpbin0 -> 9246 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/pal8os2v2-40sz.bmpbin0 -> 9254 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/pal8os2v2-sz.bmpbin0 -> 9278 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/pal8os2v2.bmpbin0 -> 9278 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/pal8oversizepal.bmpbin0 -> 9446 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/pal8rlecut.bmpbin0 -> 7980 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/pal8rlecut.pngbin0 -> 3524 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/pal8rletrns.bmpbin0 -> 9212 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/pal8rletrns.pngbin0 -> 3793 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/reftest.list251
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/rgb16-231.bmpbin0 -> 16450 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/rgb16-231.pngbin0 -> 2643 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/rgb16-3103.bmpbin0 -> 16450 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/rgb16-3103.pngbin0 -> 3347 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/rgb16.pngbin0 -> 1177 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/rgb16faketrns.bmpbin0 -> 16438 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/rgb24.pngbin0 -> 1072 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/rgb24jpeg.bmpbin0 -> 2457 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/rgb24largepal.bmpbin0 -> 25830 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/rgb24lprof.bmpbin0 -> 24743 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/rgb24png.bmpbin0 -> 1210 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/rgb24prof.bmpbin0 -> 27782 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/rgb24prof2.bmpbin0 -> 25254 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/rgb24rle24.bmpbin0 -> 21432 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/rgb32-111110.bmpbin0 -> 32578 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/rgb32-7187.bmpbin0 -> 32578 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/rgb32-7187.pngbin0 -> 2136 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/rgb32-xbgr.bmpbin0 -> 32650 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/rgb32fakealpha.bmpbin0 -> 32566 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/rgb32h52.bmpbin0 -> 32578 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/rgba16-1924.bmpbin0 -> 16522 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/rgba16-1924.pngbin0 -> 2811 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/rgba16-4444.bmpbin0 -> 16522 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/rgba16-4444.pngbin0 -> 1093 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/rgba16-5551.bmpbin0 -> 16522 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/rgba16-5551.pngbin0 -> 1226 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/rgba32-1.bmpbin0 -> 32650 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/rgba32-1010102.bmpbin0 -> 32650 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/rgba32-1010102.pngbin0 -> 1253 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/rgba32-2.bmpbin0 -> 32650 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/rgba32-61754.bmpbin0 -> 32650 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/rgba32-61754.pngbin0 -> 2483 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/rgba32-81284.bmpbin0 -> 32650 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/rgba32-81284.pngbin0 -> 2182 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/rgba32.pngbin0 -> 1229 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/rgba32abf.bmpbin0 -> 32582 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/rgba32h56.bmpbin0 -> 32582 bytes
-rw-r--r--image/test/reftest/bmp/bmpsuite/q/wrapper.html28
62 files changed, 279 insertions, 0 deletions
diff --git a/image/test/reftest/bmp/bmpsuite/q/pal1huff.bmp b/image/test/reftest/bmp/bmpsuite/q/pal1huff.bmp
new file mode 100644
index 0000000000..790a483697
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/pal1huff.bmp
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/pal1p1.bmp b/image/test/reftest/bmp/bmpsuite/q/pal1p1.bmp
new file mode 100644
index 0000000000..b68321c4c1
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/pal1p1.bmp
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/pal1p1.png b/image/test/reftest/bmp/bmpsuite/q/pal1p1.png
new file mode 100644
index 0000000000..92fc0f945b
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/pal1p1.png
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/pal2.bmp b/image/test/reftest/bmp/bmpsuite/q/pal2.bmp
new file mode 100644
index 0000000000..983e9fa92d
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/pal2.bmp
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/pal2color.bmp b/image/test/reftest/bmp/bmpsuite/q/pal2color.bmp
new file mode 100644
index 0000000000..27fe7276bc
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/pal2color.bmp
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/pal4rlecut.bmp b/image/test/reftest/bmp/bmpsuite/q/pal4rlecut.bmp
new file mode 100644
index 0000000000..2f32d1d7ad
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/pal4rlecut.bmp
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/pal4rlecut.png b/image/test/reftest/bmp/bmpsuite/q/pal4rlecut.png
new file mode 100644
index 0000000000..767f5a0ad7
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/pal4rlecut.png
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/pal4rletrns.bmp b/image/test/reftest/bmp/bmpsuite/q/pal4rletrns.bmp
new file mode 100644
index 0000000000..58994e92ba
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/pal4rletrns.bmp
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/pal4rletrns.png b/image/test/reftest/bmp/bmpsuite/q/pal4rletrns.png
new file mode 100644
index 0000000000..9b0c044364
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/pal4rletrns.png
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/pal8.png b/image/test/reftest/bmp/bmpsuite/q/pal8.png
new file mode 100644
index 0000000000..2bfd3e650f
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/pal8.png
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/pal8offs.bmp b/image/test/reftest/bmp/bmpsuite/q/pal8offs.bmp
new file mode 100644
index 0000000000..8673e9740b
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/pal8offs.bmp
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/pal8os2-hs.bmp b/image/test/reftest/bmp/bmpsuite/q/pal8os2-hs.bmp
new file mode 100644
index 0000000000..018a3c4b16
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/pal8os2-hs.bmp
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/pal8os2-sz.bmp b/image/test/reftest/bmp/bmpsuite/q/pal8os2-sz.bmp
new file mode 100644
index 0000000000..7f1455d5ef
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/pal8os2-sz.bmp
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/pal8os2sp.bmp b/image/test/reftest/bmp/bmpsuite/q/pal8os2sp.bmp
new file mode 100644
index 0000000000..e532c89863
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/pal8os2sp.bmp
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/pal8os2v2-16.bmp b/image/test/reftest/bmp/bmpsuite/q/pal8os2v2-16.bmp
new file mode 100644
index 0000000000..95a1d2345a
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/pal8os2v2-16.bmp
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/pal8os2v2-40sz.bmp b/image/test/reftest/bmp/bmpsuite/q/pal8os2v2-40sz.bmp
new file mode 100644
index 0000000000..d1e66b615c
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/pal8os2v2-40sz.bmp
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/pal8os2v2-sz.bmp b/image/test/reftest/bmp/bmpsuite/q/pal8os2v2-sz.bmp
new file mode 100644
index 0000000000..6fe566e3fd
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/pal8os2v2-sz.bmp
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/pal8os2v2.bmp b/image/test/reftest/bmp/bmpsuite/q/pal8os2v2.bmp
new file mode 100644
index 0000000000..1324a40d00
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/pal8os2v2.bmp
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/pal8oversizepal.bmp b/image/test/reftest/bmp/bmpsuite/q/pal8oversizepal.bmp
new file mode 100644
index 0000000000..93b8187ca1
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/pal8oversizepal.bmp
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/pal8rlecut.bmp b/image/test/reftest/bmp/bmpsuite/q/pal8rlecut.bmp
new file mode 100644
index 0000000000..840d31cce6
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/pal8rlecut.bmp
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/pal8rlecut.png b/image/test/reftest/bmp/bmpsuite/q/pal8rlecut.png
new file mode 100644
index 0000000000..dfceeb568b
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/pal8rlecut.png
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/pal8rletrns.bmp b/image/test/reftest/bmp/bmpsuite/q/pal8rletrns.bmp
new file mode 100644
index 0000000000..a2af88d87c
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/pal8rletrns.bmp
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/pal8rletrns.png b/image/test/reftest/bmp/bmpsuite/q/pal8rletrns.png
new file mode 100644
index 0000000000..2d8e957f1f
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/pal8rletrns.png
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/reftest.list b/image/test/reftest/bmp/bmpsuite/q/reftest.list
new file mode 100644
index 0000000000..cead5df00b
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/reftest.list
@@ -0,0 +1,251 @@
+# bmpsuite "questionable" tests
+
+# See ../README.mozilla for details.
+
+# BMP: bihsize=40, 127 x 64, bpp=1, compression=0, colors=1
+# "1 bit/pixel paletted image, with only one color in the palette. The
+# documentation says that 1-bpp images have a palette size of 2 (not 'up to
+# 2'), but it would be silly for a viewer not to support a size of 1."
+# [We accept it. So does Chromium.]
+fuzzy(0-1,0-926) == pal1p1.bmp pal1p1.png
+
+# BMP: bihsize=64, 127 x 64, bpp=1, compression=3, colors=2
+# "My attempt to make a BMP file with Huffman 1D compression. It is quite
+# possibly incorrect. Even if everything else about it is correct, I have no
+# way to know whether it is black/white reversed."
+# [We reject it. So does Chromium.]
+== wrapper.html?pal1huff.bmp about:blank
+
+# BMP: bihsize=40, 127 x 64, bpp=2, compression=0, colors=4
+# "A paletted image with 2 bits/pixel. Usually only 1, 4, and 8 are allowed,
+# but 2 is legal on Windows CE."
+# [We reject it. Chromium accepts it.]
+== wrapper.html?pal2.bmp about:blank
+
+# BMP: bihsize=40, 127 x 64, bpp=2, compression=0, colors=4
+# "Same as pal2.bmp, but with a color palette instead of grayscale palette."
+# [We reject it. Chromium accepts it.]
+== wrapper.html?pal2color.bmp about:blank
+
+# BMP: bihsize=40, 127 x 64, bpp=4, compression=2, colors=13
+# "An RLE-compressed image that used 'delta' codes to skip over some pixels,
+# leaving them undefined. Some viewers make undefined pixels transparent,
+# others make them black, and others assign them palette color 0 (purple, in
+# this case)."
+# [We make the undefined pixels transparent. So does Chromium.]
+== pal4rletrns.bmp pal4rletrns.png
+
+# BMP: bihsize=40, 127 x 64, bpp=4, compression=2, colors=13
+# "An RLE-compressed image that uses “delta” codes, and early EOL & EOBMP
+# markers, to skip over some pixels."
+== pal4rlecut.bmp pal4rlecut.png
+
+# BMP: bihsize=40, 127 x 64, bpp=8, compression=1, colors=253
+# "8-bit version of q/pal4rletrns.bmp."
+# [Ditto.]
+== pal8rletrns.bmp pal8rletrns.png
+
+# BMP: bihsize=40, 127 x 64, bpp=8, compression=1, colors=253
+# "8-bit version of q/pal4rlecut.bmp."
+== pal8rlecut.bmp pal8rlecut.png
+
+# BMP: bihsize=40, 127 x 64, bpp=8, compression=0, colors=252
+# "A file with some unused bytes between the palette and the image. This is
+# probably valid, but I’m not 100% sure."
+# [We accept it. So does Chromium.]
+fuzzy(0-1,0-996) == pal8offs.bmp pal8.png
+
+# BMP: bihsize=40, 127 x 64, bpp=8, compression=0, colors=300
+# "An 8-bit image with 300 palette colors. This may be invalid, because the
+# documentation could be interpreted to imply that 8-bit images aren’t allowed
+# to have more than 256 colors."
+# [We accept it. So does Chromium.]
+fuzzy(0-1,0-996) == pal8oversizepal.bmp pal8.png
+
+# BMP: bihsize=12, 127 x 64, bpp=8, compression=0, colors=0
+# # "Some OS/2 BMP specifications say that the size field in the file header
+# should be set to the aggregate size of the file header and infoheader,
+# instead of the total file size. For OS/2v1, that means it will always be 26.
+# BMP decoders usually ignore this field, so it shouldn’t cause a problem."
+fuzzy(0-1,0-996) == pal8os2-sz.bmp pal8.png
+
+# BMP: bihsize=12, 127 x 64, bpp=8, compression=0, colors=0
+# "Some OS/2 BMP specifications define the fields at offsets 6 and 8 to be a
+# “hotspot” (for cursor graphics). Though the fields are not used in BMP files,
+# they are sometimes, as in this file, set to nonzero values. This should cause
+# no problems, except that it could prevent some programs from detecting this
+# file as a BMP file."
+fuzzy(0-1,0-996) == pal8os2-hs.bmp pal8.png
+
+# BMP: bihsize=12, 127 x 64, bpp=8, compression=0, colors=0
+# "An OS/2v1 with a less-than-full-sized palette. Probably not valid, but such
+# files have been seen in the wild."
+# [We reject it. Chromium accepts it.]
+fuzzy(0-245,0-8128) == wrapper.html?pal8os2sp.bmp about:blank
+
+# BMP: bihsize=64, 127 x 64, bpp=8, compression=0, colors=252
+# "My attempt to make an OS/2v2 bitmap."
+# [We accept it. So does Chromium.]
+fuzzy(0-1,0-996) == pal8os2v2.bmp pal8.png
+
+# BMP: bihsize=16, 127 x 64, bpp=8, compression=0, colors=0
+# "An OS/2v2 bitmap whose header has only 16 bytes, instead of the full 64."
+# [We accept it. So does Chromium.]
+fuzzy(0-1,0-996) == pal8os2v2-16.bmp pal8.png
+
+# BMP: bihsize=64, 127 x 64, bpp=8, compression=0, colors=252
+# "An OS/2v2 bitmap. Like q/pal8os2-sz.bmp, the size field is set to the size
+# of the headers (78), instead of the size of the file."
+fuzzy(0-1,0-996) == pal8os2v2-sz.bmp pal8.png
+
+# BMP: bihsize=40, 127 x 64, bpp=8, compression=0, colors=252
+# "An OS/2v2 bitmap, with a 40-byte header. Like q/pal8os2-sz.bmp, the size
+# field is set to the size of the headers (54), instead of the size of the
+# file. Except for that, this file cannot be distinguished from a Windows
+# BMPv3 file."
+fuzzy(0-1,0-996) == pal8os2v2-40sz.bmp pal8.png
+
+# BMP: bihsize=40, 127 x 64, bpp=16, compression=0, colors=0
+# "Same idea as q/rgb32fakealpha.bmp. The default 16-bit color format has one
+# unused bit per pixel, and in this image some of the unused bits are set to 1.
+# It’s possible that some viewers will interpret this image as having
+# transparency."
+fuzzy(0-1,0-1296) == rgb16faketrns.bmp rgb16.png
+
+# BMP: bihsize=40, 127 x 64, bpp=16, compression=3, colors=0
+# "An unusual and silly 16-bit image, with 2 red bits, 3 green bits, and 1 blue
+# bit. Most viewers do support this image, but the colors may be darkened with
+# a yellow-green shadow. That’s because they’re doing simple bit-shifting
+# (possibly including one round of bit replication), instead of proper
+# scaling."
+== rgb16-231.bmp rgb16-231.png
+
+# BMP: bihsize=40, 127 x 64, bpp=16, compression=3, colors=0
+# "Similar to q/rgb16-231.bmp, with 3 red bits, 10 green bits, and 3 blue
+# bits."
+fuzzy(0-1,0-689) == rgb16-3103.bmp rgb16-3103.png
+
+# BMP: bihsize=124, 127 x 64, bpp=16, compression=3, colors=0
+# "A 16-bit image with an alpha channel. There are 4 bits for each color
+# channel, and 4 bits for the alpha channel. It’s not clear if this is valid,
+# but I can’t find anything that suggests it isn’t."
+== rgba16-4444.bmp rgba16-4444.png
+
+# BMP: bihsize=124, 127 x 64, bpp=16, compression=3, colors=0
+# "Similar to q/rgba16-4444.bmp, with 5 red bits, 5 green bits, 5 blue bits,
+# and a 1-bit alpha channel."
+fuzzy(0-1,0-2203) == rgba16-5551.bmp rgba16-5551.png
+
+# BMP: bihsize=124, 127 x 64, bpp=16, compression=3, colors=0
+# "Similar to q/rgba16-4444.bmp, with 1 red bit, 9 green bits, 2 blue bits,
+# and 4 bits for the alpha channel."
+== rgba16-1924.bmp rgba16-1924.png
+
+# BMP: bihsize=40, 127 x 64, bpp=24, compression=0, colors=300
+# "A 24-bit image, with a palette containing 300 colors. The fact that the
+# palette has more than 256 colors may cause some viewers to complain, but the
+# documentation does not mention a size limit."
+# [We accept it. So does Chromium.]
+== rgb24largepal.bmp rgb24.png
+
+# BMP: bihsize=124, 127 x 64, bpp=24, compression=0, colors=0
+# "My attempt to make a BMP file with an embedded color profile."
+fuzzy(1-1,28-73) == rgb24prof.bmp rgb24.png
+
+# BMP: bihsize=124, 127 x 64, bpp=24, compression=0, colors=0
+# "This image tries to test whether color profiles are fully supported. It has
+# the red and green channels swapped, and an embedded color profile that tries
+# to swap them back. Support for this is uncommon."
+# [The image is significantly closer to the desired output than without color
+# management, but we seem to handle the profile wrong in QCMS. See bug 1619332.]
+fuzzy(10-10,6590-6597) == rgb24prof2.bmp rgb24.png
+
+# BMP: bihsize=124, 127 x 64, bpp=24, compression=0, colors=0
+# "My attempt to make a BMP file with a linked color profile."
+# [We accept it, though we don't do anything with the color profile. Chromium
+# also handles it.]
+== rgb24lprof.bmp rgb24.png
+
+# BMP: bihsize=124, 127 x 64, bpp=0, compression=4, colors=0
+# BMP: bihsize=124, 127 x 64, bpp=0, compression=5, colors=0
+# "My attempt to make BMP files with embedded JPEG and PNG images. These are
+# not likely to be supported by much of anything (they’re intended for
+# printers)."
+# [We reject them. Chromium accepts them.]
+== wrapper.html?rgb24jpeg.bmp about:blank
+== wrapper.html?rgb24png.bmp about:blank
+
+# BMP: bihsize=64, 127 x 64, bpp=24, compression=4, colors=0
+# "An OS/2v2 bitmap with RLE24 compression. This image uses a limited number
+# of colors, just to make it more compressible."
+# [We reject it. Chromium accepts it.]
+== wrapper.html?rgb24rle24.bmp about:blank
+
+# BMP: bihsize=52, 127 x 64, bpp=32, compression=3, colors=0
+# "Similar to g/rgb32bf.bmp, but with a 52-byte “BITMAPV2INFOHEADER”. This is
+# an uncommon version of BMP, and I can’t confirm that this file is correct."
+# [We reject it. Chromium accepts it.]
+== wrapper.html?rgb32h52.bmp about:blank
+
+# BMP: bihsize=124, 127 x 64, bpp=32, compression=3, colors=0
+# "Color channels are the same size and order as rgb32bfdef.bmp, but they use
+# the highest available bits, instead of the lowest (or vice versa, depending
+# on your byte-order perspective)."
+== rgb32-xbgr.bmp rgb24.png
+
+# BMP: bihsize=40, 127 x 64, bpp=32, compression=0, colors=0
+# "Same as g/rgb32.bmp, except that the unused bits are set to something other
+# than 0. If the image becomes transparent toward the bottom, it probably means
+# the viewer uses heuristics to guess whether the undefined data represents
+# transparency."
+# [We don't apply transparency here. Chromium does the same.]
+== rgb32fakealpha.bmp rgb24.png
+
+# BMP: bihsize=40, 127 x 64, bpp=32, compression=3, colors=0
+# "A 32 bits/pixel image, with all 32 bits used: 11 each for red and green, and
+# 10 for blue. As far as I know, this is perfectly valid, but it is unusual."
+fuzzy(0-1,0-1408) == rgb32-111110.bmp rgb24.png
+
+# BMP: bihsize=40, 127 x 64, bpp=32, compression=3, colors=0
+# "A 32 bits/pixel image, with 7 bits for red, 18 for green, and 7 for blue."
+fuzzy(0-1,0-753) == rgb32-7187.bmp rgb32-7187.png
+
+# BMP: bihsize=124, 127 x 64, bpp=32, compression=3, colors=0
+# "A BMP with an alpha channel. Transparency is barely documented, so it’s
+# possible that this file is not correctly formed. The color channels are in an
+# unusual order, to prevent viewers from passing this test by making a lucky
+# guess."
+== rgba32-1.bmp rgba32.png
+
+# BMP: bihsize=124, 127 x 64, bpp=32, compression=3, colors=0
+# "Same as rgba32-1.bmp, but with the color channels in an unusual order, to
+# prevent viewers from passing this test by making a lucky guess."
+== rgba32-2.bmp rgba32.png
+
+# BMP: bihsize=124, 127 x 64, bpp=32, compression=3, colors=0
+# "A 32 bits/pixel image, with 10 bits for red, 10 for green, 10 for blue, and
+# 2 for alpha."
+fuzzy(0-1,0-1296) == rgba32-1010102.bmp rgba32-1010102.png
+
+# BMP: bihsize=124, 127 x 64, bpp=32, compression=3, colors=0
+# "A 32 bits/pixel image, with 8 bits for red, 12 for green, 8 for blue, and 4
+# for alpha."
+fuzzy(0-1,0-753) == rgba32-81284.bmp rgba32-81284.png
+
+# BMP: bihsize=124, 127 x 64, bpp=32, compression=3, colors=0
+# "A 32 bits/pixel image, with 6 bits for red, 17 for green, 5 for blue, and 4
+# for alpha."
+fuzzy(0-1,0-1554) == rgba32-61754.bmp rgba32-61754.png
+
+# BMP: bihsize=40, 127 x 64, bpp=32, compression=6, colors=0
+# "An image of type BI_ALPHABITFIELDS. Supposedly, this was used on Windows CE.
+# I don’t know whether it is constructed correctly."
+# [We reject it. Chromium accepts it.]
+== wrapper.html?rgba32abf.bmp about:blank
+
+# BMP: bihsize=56, 127 x 64, bpp=32, compression=3, colors=0
+# "Similar to q/rgba32.bmp, but with a 56-byte “BITMAPV3INFOHEADER”. This is an
+# uncommon version of BMP, and I can’t confirm that this file is correct."
+# [We reject it. Chromium accepts it.]
+== wrapper.html?rgba32h56.bmp about:blank
+
diff --git a/image/test/reftest/bmp/bmpsuite/q/rgb16-231.bmp b/image/test/reftest/bmp/bmpsuite/q/rgb16-231.bmp
new file mode 100644
index 0000000000..6300f69f0c
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/rgb16-231.bmp
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/rgb16-231.png b/image/test/reftest/bmp/bmpsuite/q/rgb16-231.png
new file mode 100644
index 0000000000..76efe526e5
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/rgb16-231.png
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/rgb16-3103.bmp b/image/test/reftest/bmp/bmpsuite/q/rgb16-3103.bmp
new file mode 100644
index 0000000000..6e01226029
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/rgb16-3103.bmp
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/rgb16-3103.png b/image/test/reftest/bmp/bmpsuite/q/rgb16-3103.png
new file mode 100644
index 0000000000..79ba23c834
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/rgb16-3103.png
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/rgb16.png b/image/test/reftest/bmp/bmpsuite/q/rgb16.png
new file mode 100644
index 0000000000..d9545840ab
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/rgb16.png
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/rgb16faketrns.bmp b/image/test/reftest/bmp/bmpsuite/q/rgb16faketrns.bmp
new file mode 100644
index 0000000000..62fb393bb9
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/rgb16faketrns.bmp
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/rgb24.png b/image/test/reftest/bmp/bmpsuite/q/rgb24.png
new file mode 100644
index 0000000000..86a9c945b0
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/rgb24.png
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/rgb24jpeg.bmp b/image/test/reftest/bmp/bmpsuite/q/rgb24jpeg.bmp
new file mode 100644
index 0000000000..87d73d75b8
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/rgb24jpeg.bmp
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/rgb24largepal.bmp b/image/test/reftest/bmp/bmpsuite/q/rgb24largepal.bmp
new file mode 100644
index 0000000000..d5e418c2d4
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/rgb24largepal.bmp
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/rgb24lprof.bmp b/image/test/reftest/bmp/bmpsuite/q/rgb24lprof.bmp
new file mode 100644
index 0000000000..b868b88f20
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/rgb24lprof.bmp
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/rgb24png.bmp b/image/test/reftest/bmp/bmpsuite/q/rgb24png.bmp
new file mode 100644
index 0000000000..e87ec7adda
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/rgb24png.bmp
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/rgb24prof.bmp b/image/test/reftest/bmp/bmpsuite/q/rgb24prof.bmp
new file mode 100644
index 0000000000..627e676eae
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/rgb24prof.bmp
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/rgb24prof2.bmp b/image/test/reftest/bmp/bmpsuite/q/rgb24prof2.bmp
new file mode 100644
index 0000000000..f9f61b8ee3
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/rgb24prof2.bmp
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/rgb24rle24.bmp b/image/test/reftest/bmp/bmpsuite/q/rgb24rle24.bmp
new file mode 100644
index 0000000000..360aee649c
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/rgb24rle24.bmp
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/rgb32-111110.bmp b/image/test/reftest/bmp/bmpsuite/q/rgb32-111110.bmp
new file mode 100644
index 0000000000..ec07d89b5b
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/rgb32-111110.bmp
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/rgb32-7187.bmp b/image/test/reftest/bmp/bmpsuite/q/rgb32-7187.bmp
new file mode 100644
index 0000000000..887ba52c91
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/rgb32-7187.bmp
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/rgb32-7187.png b/image/test/reftest/bmp/bmpsuite/q/rgb32-7187.png
new file mode 100644
index 0000000000..a1da44d6be
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/rgb32-7187.png
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/rgb32-xbgr.bmp b/image/test/reftest/bmp/bmpsuite/q/rgb32-xbgr.bmp
new file mode 100644
index 0000000000..c6c05e1480
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/rgb32-xbgr.bmp
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/rgb32fakealpha.bmp b/image/test/reftest/bmp/bmpsuite/q/rgb32fakealpha.bmp
new file mode 100644
index 0000000000..cb544da5b6
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/rgb32fakealpha.bmp
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/rgb32h52.bmp b/image/test/reftest/bmp/bmpsuite/q/rgb32h52.bmp
new file mode 100644
index 0000000000..db6e4538ef
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/rgb32h52.bmp
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/rgba16-1924.bmp b/image/test/reftest/bmp/bmpsuite/q/rgba16-1924.bmp
new file mode 100644
index 0000000000..6564098a4d
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/rgba16-1924.bmp
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/rgba16-1924.png b/image/test/reftest/bmp/bmpsuite/q/rgba16-1924.png
new file mode 100644
index 0000000000..0fc182f153
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/rgba16-1924.png
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/rgba16-4444.bmp b/image/test/reftest/bmp/bmpsuite/q/rgba16-4444.bmp
new file mode 100644
index 0000000000..051ff23589
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/rgba16-4444.bmp
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/rgba16-4444.png b/image/test/reftest/bmp/bmpsuite/q/rgba16-4444.png
new file mode 100644
index 0000000000..bfeda6faed
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/rgba16-4444.png
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/rgba16-5551.bmp b/image/test/reftest/bmp/bmpsuite/q/rgba16-5551.bmp
new file mode 100644
index 0000000000..73e2cd533f
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/rgba16-5551.bmp
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/rgba16-5551.png b/image/test/reftest/bmp/bmpsuite/q/rgba16-5551.png
new file mode 100644
index 0000000000..613126a8ab
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/rgba16-5551.png
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/rgba32-1.bmp b/image/test/reftest/bmp/bmpsuite/q/rgba32-1.bmp
new file mode 100644
index 0000000000..3c1e2648fc
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/rgba32-1.bmp
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/rgba32-1010102.bmp b/image/test/reftest/bmp/bmpsuite/q/rgba32-1010102.bmp
new file mode 100644
index 0000000000..1a918cebf5
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/rgba32-1010102.bmp
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/rgba32-1010102.png b/image/test/reftest/bmp/bmpsuite/q/rgba32-1010102.png
new file mode 100644
index 0000000000..a472fbc799
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/rgba32-1010102.png
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/rgba32-2.bmp b/image/test/reftest/bmp/bmpsuite/q/rgba32-2.bmp
new file mode 100644
index 0000000000..829c7c7e34
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/rgba32-2.bmp
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/rgba32-61754.bmp b/image/test/reftest/bmp/bmpsuite/q/rgba32-61754.bmp
new file mode 100644
index 0000000000..d5936fd20b
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/rgba32-61754.bmp
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/rgba32-61754.png b/image/test/reftest/bmp/bmpsuite/q/rgba32-61754.png
new file mode 100644
index 0000000000..c593b14c66
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/rgba32-61754.png
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/rgba32-81284.bmp b/image/test/reftest/bmp/bmpsuite/q/rgba32-81284.bmp
new file mode 100644
index 0000000000..1f9fc29d6b
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/rgba32-81284.bmp
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/rgba32-81284.png b/image/test/reftest/bmp/bmpsuite/q/rgba32-81284.png
new file mode 100644
index 0000000000..c958cd36fc
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/rgba32-81284.png
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/rgba32.png b/image/test/reftest/bmp/bmpsuite/q/rgba32.png
new file mode 100644
index 0000000000..25e542a655
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/rgba32.png
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/rgba32abf.bmp b/image/test/reftest/bmp/bmpsuite/q/rgba32abf.bmp
new file mode 100644
index 0000000000..d9bb0189c4
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/rgba32abf.bmp
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/rgba32h56.bmp b/image/test/reftest/bmp/bmpsuite/q/rgba32h56.bmp
new file mode 100644
index 0000000000..343baa3300
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/rgba32h56.bmp
Binary files differ
diff --git a/image/test/reftest/bmp/bmpsuite/q/wrapper.html b/image/test/reftest/bmp/bmpsuite/q/wrapper.html
new file mode 100644
index 0000000000..22b74c8fc1
--- /dev/null
+++ b/image/test/reftest/bmp/bmpsuite/q/wrapper.html
@@ -0,0 +1,28 @@
+<!DOCTYPE HTML>
+<html class="reftest-wait">
+<head>
+<title>Image reftest wrapper</title>
+<style type="text/css">
+ #image1 { background-color: rgb(10, 100, 250); }
+</style>
+<script>
+ // The image is loaded async after the page loads
+ // wait for it to finish loading
+ function onImageLoad() {
+ document.documentElement.removeAttribute("class");
+ };
+</script>
+</head>
+<body>
+<!-- non-empty alt to avoid the broken image icon -->
+<img id="image1" alt=" ">
+<script>
+ // Use as "wrapper.html?image.png"
+ var imgURL = document.location.search.substr(1);
+ document.images[0].onload = onImageLoad;
+ document.images[0].onerror = onImageLoad;
+ document.images[0].src = imgURL;
+</script>
+</body>
+</html>
+