summaryrefslogtreecommitdiffstatshomepage
path: root/regtests/chdman
diff options
context:
space:
mode:
Diffstat (limited to 'regtests/chdman')
-rw-r--r--regtests/chdman/chdtest.py237
-rw-r--r--regtests/chdman/input/copy_cd_cue_audio_silence_wav_20_tracks_v4/in.chdbin0 -> 38412 bytes
-rw-r--r--regtests/chdman/input/copy_cd_cue_audio_silence_wav_v4/in.chdbin0 -> 32356 bytes
-rw-r--r--regtests/chdman/input/copy_cd_cue_empty_v4/in.chdbin0 -> 27956 bytes
-rw-r--r--regtests/chdman/input/copy_cd_nrg_empty_v4/in.chdbin0 -> 27956 bytes
-rw-r--r--regtests/chdman/input/copy_cd_toc_empty_v4/in.chdbin0 -> 60598 bytes
-rw-r--r--regtests/chdman/input/copy_hd_1/in.chdbin0 -> 21337 bytes
-rw-r--r--regtests/chdman/input/createcd_cue_audio_silence/in.binbin0 -> 14109648 bytes
-rw-r--r--regtests/chdman/input/createcd_cue_audio_silence/in.cue42
-rw-r--r--regtests/chdman/input/createcd_cue_audio_silence_wav/in.cue15
-rw-r--r--regtests/chdman/input/createcd_cue_audio_silence_wav/silence.wavbin0 -> 176448 bytes
-rw-r--r--regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks/in.cue60
-rw-r--r--regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks/silence.wavbin0 -> 176448 bytes
-rw-r--r--regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_cdfl/in.cue60
-rw-r--r--regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_cdfl/in.params1
-rw-r--r--regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_cdfl/silence.wavbin0 -> 176448 bytes
-rw-r--r--regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_cdlz/in.cue60
-rw-r--r--regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_cdlz/in.params1
-rw-r--r--regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_cdlz/silence.wavbin0 -> 176448 bytes
-rw-r--r--regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_cdzl/in.cue60
-rw-r--r--regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_cdzl/in.params1
-rw-r--r--regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_cdzl/silence.wavbin0 -> 176448 bytes
-rw-r--r--regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_none/in.cue60
-rw-r--r--regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_none/in.params1
-rw-r--r--regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_none/silence.wavbin0 -> 176448 bytes
-rw-r--r--regtests/chdman/input/createcd_cue_empty/in.binbin0 -> 1430016 bytes
-rw-r--r--regtests/chdman/input/createcd_cue_empty/in.cue4
-rw-r--r--regtests/chdman/input/createcd_iso_empty/in.isobin0 -> 1245184 bytes
-rw-r--r--regtests/chdman/input/createcd_nrg_audio_silence/in.nrgbin0 -> 14466058 bytes
-rw-r--r--regtests/chdman/input/createcd_nrg_empty/in.nrgbin0 -> 1782972 bytes
-rw-r--r--regtests/chdman/input/createcd_toc_empty/data.binbin0 -> 1488384 bytes
-rw-r--r--regtests/chdman/input/createcd_toc_empty/in.toc8
-rw-r--r--regtests/chdman/input/createhd_1/in.params1
-rw-r--r--regtests/chdman/input/createhd_2/in.params1
-rw-r--r--regtests/chdman/input/createhd_3/in.params1
-rw-r--r--regtests/chdman/input/createhd_4/in.params1
-rw-r--r--regtests/chdman/input/createhd_5/in.params1
-rw-r--r--regtests/chdman/input/createhd_raw_empty/in.rawbin0 -> 1048576 bytes
-rw-r--r--regtests/chdman/input/createhd_raw_empty_flac/in.params1
-rw-r--r--regtests/chdman/input/createhd_raw_empty_flac/in.rawbin0 -> 1048576 bytes
-rw-r--r--regtests/chdman/input/createhd_raw_empty_huff/in.params1
-rw-r--r--regtests/chdman/input/createhd_raw_empty_huff/in.rawbin0 -> 1048576 bytes
-rw-r--r--regtests/chdman/input/createhd_raw_empty_lzma/in.params1
-rw-r--r--regtests/chdman/input/createhd_raw_empty_lzma/in.rawbin0 -> 1048576 bytes
-rw-r--r--regtests/chdman/input/createhd_raw_empty_none/in.params1
-rw-r--r--regtests/chdman/input/createhd_raw_empty_none/in.rawbin0 -> 1048576 bytes
-rw-r--r--regtests/chdman/input/createhd_raw_empty_zlib/in.params1
-rw-r--r--regtests/chdman/input/createhd_raw_empty_zlib/in.rawbin0 -> 1048576 bytes
-rw-r--r--regtests/chdman/input/createld_avi_uyvy_3_frames_no_audio/in.avibin0 -> 1326226 bytes
-rw-r--r--regtests/chdman/input/createld_avi_yuv2_3_frames_no_audio/in.avibin0 -> 1326226 bytes
-rw-r--r--regtests/chdman/output/copy_cd_cue_audio_silence_wav_20_tracks_v4/out.chdbin0 -> 28848 bytes
-rw-r--r--regtests/chdman/output/copy_cd_cue_audio_silence_wav_v4/out.chdbin0 -> 27335 bytes
-rw-r--r--regtests/chdman/output/copy_cd_cue_empty_v4/out.chdbin0 -> 7326 bytes
-rw-r--r--regtests/chdman/output/copy_cd_nrg_empty_v4/out.chdbin0 -> 7326 bytes
-rw-r--r--regtests/chdman/output/copy_cd_toc_empty_v4/out.chdbin0 -> 51541 bytes
-rw-r--r--regtests/chdman/output/copy_hd_1/out.chdbin0 -> 226 bytes
-rw-r--r--regtests/chdman/output/createcd_cue_audio_silence/out.chdbin0 -> 27597 bytes
-rw-r--r--regtests/chdman/output/createcd_cue_audio_silence_wav/out.chdbin0 -> 49918 bytes
-rw-r--r--regtests/chdman/output/createcd_cue_audio_silence_wav_20_tracks/out.chdbin0 -> 50262 bytes
-rw-r--r--regtests/chdman/output/createcd_cue_audio_silence_wav_20_tracks_cdfl/out.chdbin0 -> 58054 bytes
-rw-r--r--regtests/chdman/output/createcd_cue_audio_silence_wav_20_tracks_cdlz/out.chdbin0 -> 50262 bytes
-rw-r--r--regtests/chdman/output/createcd_cue_audio_silence_wav_20_tracks_cdzl/out.chdbin0 -> 58168 bytes
-rw-r--r--regtests/chdman/output/createcd_cue_audio_silence_wav_20_tracks_none/out.chdbin0 -> 3740544 bytes
-rw-r--r--regtests/chdman/output/createcd_cue_empty/out.chdbin0 -> 9558 bytes
-rw-r--r--regtests/chdman/output/createcd_iso_empty/out.chdbin0 -> 2022 bytes
-rw-r--r--regtests/chdman/output/createcd_nrg_audio_silence/out.chdbin0 -> 40482 bytes
-rw-r--r--regtests/chdman/output/createcd_nrg_empty/out.chdbin0 -> 9558 bytes
-rw-r--r--regtests/chdman/output/createcd_toc_empty/out.chdbin0 -> 46007 bytes
-rw-r--r--regtests/chdman/output/createhd_1/out.chdbin0 -> 21337 bytes
-rw-r--r--regtests/chdman/output/createhd_2/out.chdbin0 -> 21337 bytes
-rw-r--r--regtests/chdman/output/createhd_3/out.chdbin0 -> 42502 bytes
-rw-r--r--regtests/chdman/output/createhd_4/out.chdbin0 -> 10413 bytes
-rw-r--r--regtests/chdman/output/createhd_5/out.chdbin0 -> 10414 bytes
-rw-r--r--regtests/chdman/output/createhd_raw_empty/out.chdbin0 -> 409 bytes
-rw-r--r--regtests/chdman/output/createhd_raw_empty_flac/out.chdbin0 -> 787 bytes
-rw-r--r--regtests/chdman/output/createhd_raw_empty_huff/out.chdbin0 -> 1410 bytes
-rw-r--r--regtests/chdman/output/createhd_raw_empty_lzma/out.chdbin0 -> 418 bytes
-rw-r--r--regtests/chdman/output/createhd_raw_empty_none/out.chdbin0 -> 8192 bytes
-rw-r--r--regtests/chdman/output/createhd_raw_empty_zlib/out.chdbin0 -> 418 bytes
-rw-r--r--regtests/chdman/output/createld_avi_uyvy_3_frames_no_audio/out.chdbin0 -> 376 bytes
-rw-r--r--regtests/chdman/output/createld_avi_yuv2_3_frames_no_audio/out.chdbin0 -> 376 bytes
81 files changed, 620 insertions, 0 deletions
diff --git a/regtests/chdman/chdtest.py b/regtests/chdman/chdtest.py
new file mode 100644
index 00000000000..4b13c176cf9
--- /dev/null
+++ b/regtests/chdman/chdtest.py
@@ -0,0 +1,237 @@
+import os
+import subprocess
+import sys
+import hashlib
+import shutil
+
+def runProcess(cmd):
+ #print " ".join(cmd)
+ process = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
+ (stdout, stderr) = process.communicate()
+ if not isinstance(stdout, str): # python 3
+ stdout = stdout.decode('latin-1')
+ if not isinstance(stderr, str): # python 3
+ stderr = stderr.decode('latin-1')
+ #if stderr:
+ # print stderr
+ return process.returncode, stdout, stderr
+
+def compareInfo(info1, info2):
+ lines1 = info1.splitlines()
+ lines2 = info2.splitlines()
+ if not len(lines1) == len(lines2):
+ return False
+
+ mismatch = False
+ for i in range(len(lines1)):
+ if lines1[i].startswith("chdman - ") and lines2[i].startswith("chdman - "):
+ continue
+ if lines1[i].startswith("Input file:") and lines2[i].startswith("Input file:"):
+ continue
+ if not lines1[i] == lines2[i]:
+ mismatch = True
+ print(lines1[i] + " - " + lines2[i])
+
+ return mismatch == False
+
+def sha1sum(path):
+ if not os.path.exists(path):
+ return ""
+ f = open(path, 'rb')
+ try:
+ sha1 = hashlib.sha1()
+ while True:
+ data = f.read(8192)
+ if data:
+ sha1.update(data)
+ else:
+ break
+ finally:
+ f.close()
+ return sha1.hexdigest()
+
+def extractcdAndCompare(type):
+ global failure
+ extractFileDir = os.path.join(tempFilePath, type + "_output")
+ if not os.path.exists(extractFileDir):
+ os.makedirs(extractFileDir)
+ extractFileBase = os.path.join(extractFileDir, "extract")
+ extractFile = extractFileBase + "." + type
+ extractFileBin = extractFileBase + ".bin"
+
+ exitcode, stdout, stderr = runProcess([chdmanBin, "extractcd", "-f", "-i", outFile, "-o", extractFile])
+ if not exitcode == 0:
+ print(d + " - extractcd (" + type + ") failed with " + str(exitcode) + " (" + stderr + ")")
+ failure = True
+
+ sha1_extract = sha1sum(extractFile)
+ sha1_extract_bin = sha1sum(extractFileBin)
+
+ extractFileDir = os.path.join(tempFilePath, type + "_temp")
+ if not os.path.exists(extractFileDir):
+ os.makedirs(extractFileDir)
+ extractFileBase = os.path.join(extractFileDir, "extract")
+ extractFile = extractFileBase + "." + type
+ extractFileBin = extractFileBase + ".bin"
+
+ exitcode, stdout, stderr = runProcess([chdmanBin, "extractcd", "-f", "-i", tempFile, "-o", extractFile])
+ if not exitcode == 0:
+ print(d + " - extractcd (" + type + ") failed with " + str(exitcode) + " (" + stderr + ")")
+ failure = True
+
+ sha1_extract_2 = sha1sum(extractFile)
+ sha1_extract_bin_2 = sha1sum(extractFileBin)
+
+ if not sha1_extract == sha1_extract_2:
+ print("expected: " + sha1_extract + " found: " + sha1_extract_2)
+ print(d + " - SHA1 mismatch (extractcd - " + type + " - toc)")
+ failure = True
+
+ if not sha1_extract_bin == sha1_extract_bin_2:
+ print("expected: " + sha1_extract_bin + " found: " + sha1_extract_bin_2)
+ print(d + " - SHA1 mismatch (extractcd - " + type + " - bin)")
+ failure = True
+
+def extractAndCompare(command, ext):
+ global failure
+ extractFileDir = os.path.join(tempFilePath, ext + "_output")
+ if not os.path.exists(extractFileDir):
+ os.makedirs(extractFileDir)
+ extractFileBase = os.path.join(extractFileDir, "extract")
+ extractFile = extractFileBase + "." + ext
+
+ exitcode, stdout, stderr = runProcess([chdmanBin, command, "-f", "-i", outFile, "-o", extractFile])
+ if not exitcode == 0:
+ print(d + " - " + command + " (" + ext + ") failed with " + str(exitcode) + " (" + stderr + ")")
+ failure = True
+
+ sha1_extract = sha1sum(extractFile)
+
+ extractFileDir = os.path.join(tempFilePath, ext + "_temp")
+ if not os.path.exists(extractFileDir):
+ os.makedirs(extractFileDir)
+ extractFileBase = os.path.join(extractFileDir, "extract")
+ extractFile = extractFileBase + "." + ext
+
+ exitcode, stdout, stderr = runProcess([chdmanBin, command, "-f", "-i", tempFile, "-o", extractFile])
+ if not exitcode == 0:
+ print(d + " - " + command + " (" + ext + ") failed with " + str(exitcode) + " (" + stderr + ")")
+ failure = True
+
+ sha1_extract_2 = sha1sum(extractFile)
+
+ if not sha1_extract == sha1_extract_2:
+ print("expected: " + sha1_extract + " found: " + sha1_extract_2)
+ print(d + " - SHA1 mismatch (" + command + " - " + ext + ")")
+ failure = True
+
+currentDirectory = os.path.dirname(os.path.realpath(__file__))
+inputPath = os.path.join(currentDirectory, 'input')
+outputPath = os.path.join(currentDirectory, "output")
+tempPath = os.path.join(currentDirectory, "temp")
+if os.name == 'nt':
+ chdmanBin = os.path.normpath(os.path.join(currentDirectory, "..", "..", "chdman.exe"))
+else:
+ chdmanBin = os.path.normpath(os.path.join(currentDirectory, "..", "..", "chdman"))
+
+if not os.path.exists(chdmanBin):
+ sys.stderr.write(chdmanBin + " does not exist\n")
+ sys.exit(1)
+
+if not os.path.exists(inputPath):
+ sys.stderr.write(inputPath + " does not exist\n")
+ sys.exit(1)
+
+if not os.path.exists(outputPath):
+ sys.stderr.write(outputPath + " does not exist\n")
+ sys.exit(1)
+
+if os.path.exists(tempPath):
+ shutil.rmtree(tempPath)
+
+failure = False
+
+for root, dirs, files in os.walk(inputPath):
+ for d in dirs:
+ if d.startswith("."):
+ continue
+
+ command = ext = d.split("_", 2)[0]
+ inFile = os.path.join(root, d, "in")
+ # TODO: make this better
+ outFile = os.path.join(root, d, "out.chd").replace("input", "output")
+ tempFilePath = os.path.join(tempPath, d)
+ tempFile = os.path.join(tempFilePath, "out.chd")
+ inParams = inFile + ".params"
+ params = []
+ if os.path.exists(inParams):
+ f = open(inParams, 'r')
+ paramsstr = f.read()
+ f.close()
+ params = paramsstr.split(" ")
+ if not os.path.exists(tempFilePath):
+ os.makedirs(tempFilePath)
+ if command == "createcd":
+ ext = d.split("_", 2)[1]
+ inFile += "." + ext
+ elif command == "createhd":
+ ext = d.split("_", 2)[1]
+ inFile += "." + ext
+ elif command == "createld":
+ ext = d.split("_", 2)[1]
+ inFile += "." + ext
+ elif command == "copy":
+ inFile += ".chd"
+ else:
+ print("unsupported mode '%s'" % command)
+ continue
+ if os.path.exists(inFile):
+ cmd = [chdmanBin, command, "-f", "-i", inFile, "-o", tempFile] + params
+ else:
+ cmd = [chdmanBin, command, "-f", "-o", tempFile] + params
+
+ exitcode, stdout, stderr = runProcess(cmd)
+ if not exitcode == 0:
+ print(d + " - command failed with " + str(exitcode) + " (" + stderr + ")")
+ failure = True
+
+ # verify
+ exitcode, stdout, stderr = runProcess([chdmanBin, "verify", "-i", tempFile])
+ if not exitcode == 0:
+ print(d + " - verify failed with " + str(exitcode) + " (" + stderr + ")")
+ failure = True
+
+ # compare info
+ # TODO: store expected output of reference file as well and compare
+ exitcode, info1, stderr = runProcess([chdmanBin, "info", "-v", "-i", tempFile])
+ if not exitcode == 0:
+ print(d + " - info (temp) failed with " + str(exitcode) + " (" + stderr + ")")
+ failure = True
+ exitcode, info2, stderr = runProcess([chdmanBin, "info", "-v", "-i", outFile])
+ if not exitcode == 0:
+ print(d + " - info (output) failed with " + str(exitcode) + " (" + stderr + ")")
+ failure = True
+ if not compareInfo(info1, info2):
+ print(d + " - info output differs")
+ failure = True
+
+ # extract and compare
+ if command == "createcd":
+ extractcdAndCompare("toc")
+ extractcdAndCompare("cue")
+ elif command == "createhd":
+ extractAndCompare("extracthd", "raw")
+ elif command == "createld":
+ extractAndCompare("extractld", "avi")
+ # TODO: add extraction for "copy" as well
+
+ # compare SHA1 of output files
+ sha1_out = sha1sum(outFile)
+ sha1_temp = sha1sum(tempFile)
+ if not sha1_out == sha1_temp:
+ print("expected: " + sha1_out + " found: " + sha1_temp)
+ print(d + " - SHA1 mismatch (output file)")
+ failure = True
+
+if not failure:
+ print("All tests finished successfully")
diff --git a/regtests/chdman/input/copy_cd_cue_audio_silence_wav_20_tracks_v4/in.chd b/regtests/chdman/input/copy_cd_cue_audio_silence_wav_20_tracks_v4/in.chd
new file mode 100644
index 00000000000..9cede819041
--- /dev/null
+++ b/regtests/chdman/input/copy_cd_cue_audio_silence_wav_20_tracks_v4/in.chd
Binary files differ
diff --git a/regtests/chdman/input/copy_cd_cue_audio_silence_wav_v4/in.chd b/regtests/chdman/input/copy_cd_cue_audio_silence_wav_v4/in.chd
new file mode 100644
index 00000000000..73a5d7621d1
--- /dev/null
+++ b/regtests/chdman/input/copy_cd_cue_audio_silence_wav_v4/in.chd
Binary files differ
diff --git a/regtests/chdman/input/copy_cd_cue_empty_v4/in.chd b/regtests/chdman/input/copy_cd_cue_empty_v4/in.chd
new file mode 100644
index 00000000000..2454149c709
--- /dev/null
+++ b/regtests/chdman/input/copy_cd_cue_empty_v4/in.chd
Binary files differ
diff --git a/regtests/chdman/input/copy_cd_nrg_empty_v4/in.chd b/regtests/chdman/input/copy_cd_nrg_empty_v4/in.chd
new file mode 100644
index 00000000000..06e5c0cc6fb
--- /dev/null
+++ b/regtests/chdman/input/copy_cd_nrg_empty_v4/in.chd
Binary files differ
diff --git a/regtests/chdman/input/copy_cd_toc_empty_v4/in.chd b/regtests/chdman/input/copy_cd_toc_empty_v4/in.chd
new file mode 100644
index 00000000000..94e4b9fe6fd
--- /dev/null
+++ b/regtests/chdman/input/copy_cd_toc_empty_v4/in.chd
Binary files differ
diff --git a/regtests/chdman/input/copy_hd_1/in.chd b/regtests/chdman/input/copy_hd_1/in.chd
new file mode 100644
index 00000000000..fe9f2cb8c8e
--- /dev/null
+++ b/regtests/chdman/input/copy_hd_1/in.chd
Binary files differ
diff --git a/regtests/chdman/input/createcd_cue_audio_silence/in.bin b/regtests/chdman/input/createcd_cue_audio_silence/in.bin
new file mode 100644
index 00000000000..6e43ca05da4
--- /dev/null
+++ b/regtests/chdman/input/createcd_cue_audio_silence/in.bin
Binary files differ
diff --git a/regtests/chdman/input/createcd_cue_audio_silence/in.cue b/regtests/chdman/input/createcd_cue_audio_silence/in.cue
new file mode 100644
index 00000000000..dcd79a50599
--- /dev/null
+++ b/regtests/chdman/input/createcd_cue_audio_silence/in.cue
@@ -0,0 +1,42 @@
+FILE "in.bin" BINARY
+REM SESSION 01
+ TRACK 01 AUDIO
+ INDEX 01 00:00:00
+ TRACK 02 AUDIO
+ INDEX 01 00:04:00
+ TRACK 03 AUDIO
+ INDEX 01 00:08:00
+ TRACK 04 AUDIO
+ INDEX 01 00:12:00
+ TRACK 05 AUDIO
+ INDEX 01 00:16:00
+ TRACK 06 AUDIO
+ INDEX 01 00:20:00
+ TRACK 07 AUDIO
+ INDEX 01 00:24:00
+ TRACK 08 AUDIO
+ INDEX 01 00:28:00
+ TRACK 09 AUDIO
+ INDEX 01 00:32:00
+ TRACK 10 AUDIO
+ INDEX 01 00:36:00
+ TRACK 11 AUDIO
+ INDEX 01 00:40:00
+ TRACK 12 AUDIO
+ INDEX 01 00:44:00
+ TRACK 13 AUDIO
+ INDEX 01 00:48:00
+ TRACK 14 AUDIO
+ INDEX 01 00:52:00
+ TRACK 15 AUDIO
+ INDEX 01 00:56:00
+ TRACK 16 AUDIO
+ INDEX 01 01:00:00
+ TRACK 17 AUDIO
+ INDEX 01 01:04:00
+ TRACK 18 AUDIO
+ INDEX 01 01:08:00
+ TRACK 19 AUDIO
+ INDEX 01 01:12:00
+ TRACK 20 AUDIO
+ INDEX 01 01:16:00
diff --git a/regtests/chdman/input/createcd_cue_audio_silence_wav/in.cue b/regtests/chdman/input/createcd_cue_audio_silence_wav/in.cue
new file mode 100644
index 00000000000..4d8ac1e0798
--- /dev/null
+++ b/regtests/chdman/input/createcd_cue_audio_silence_wav/in.cue
@@ -0,0 +1,15 @@
+FILE "silence.wav" WAVE
+TRACK 01 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 02 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 03 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 04 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 05 AUDIO
+ INDEX 01 00:00:00
diff --git a/regtests/chdman/input/createcd_cue_audio_silence_wav/silence.wav b/regtests/chdman/input/createcd_cue_audio_silence_wav/silence.wav
new file mode 100644
index 00000000000..9b2ecc0eea0
--- /dev/null
+++ b/regtests/chdman/input/createcd_cue_audio_silence_wav/silence.wav
Binary files differ
diff --git a/regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks/in.cue b/regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks/in.cue
new file mode 100644
index 00000000000..93f44224774
--- /dev/null
+++ b/regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks/in.cue
@@ -0,0 +1,60 @@
+FILE "silence.wav" WAVE
+TRACK 01 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 02 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 03 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 04 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 05 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 06 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 07 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 08 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 09 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 10 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 11 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 12 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 13 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 14 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 15 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 16 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 17 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 18 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 19 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 20 AUDIO
+ INDEX 01 00:00:00
diff --git a/regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks/silence.wav b/regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks/silence.wav
new file mode 100644
index 00000000000..9b2ecc0eea0
--- /dev/null
+++ b/regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks/silence.wav
Binary files differ
diff --git a/regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_cdfl/in.cue b/regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_cdfl/in.cue
new file mode 100644
index 00000000000..93f44224774
--- /dev/null
+++ b/regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_cdfl/in.cue
@@ -0,0 +1,60 @@
+FILE "silence.wav" WAVE
+TRACK 01 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 02 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 03 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 04 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 05 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 06 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 07 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 08 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 09 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 10 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 11 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 12 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 13 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 14 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 15 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 16 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 17 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 18 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 19 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 20 AUDIO
+ INDEX 01 00:00:00
diff --git a/regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_cdfl/in.params b/regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_cdfl/in.params
new file mode 100644
index 00000000000..9f9e0da92ee
--- /dev/null
+++ b/regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_cdfl/in.params
@@ -0,0 +1 @@
+-c cdfl \ No newline at end of file
diff --git a/regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_cdfl/silence.wav b/regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_cdfl/silence.wav
new file mode 100644
index 00000000000..9b2ecc0eea0
--- /dev/null
+++ b/regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_cdfl/silence.wav
Binary files differ
diff --git a/regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_cdlz/in.cue b/regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_cdlz/in.cue
new file mode 100644
index 00000000000..93f44224774
--- /dev/null
+++ b/regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_cdlz/in.cue
@@ -0,0 +1,60 @@
+FILE "silence.wav" WAVE
+TRACK 01 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 02 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 03 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 04 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 05 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 06 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 07 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 08 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 09 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 10 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 11 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 12 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 13 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 14 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 15 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 16 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 17 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 18 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 19 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 20 AUDIO
+ INDEX 01 00:00:00
diff --git a/regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_cdlz/in.params b/regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_cdlz/in.params
new file mode 100644
index 00000000000..93892b23774
--- /dev/null
+++ b/regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_cdlz/in.params
@@ -0,0 +1 @@
+-c cdlz \ No newline at end of file
diff --git a/regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_cdlz/silence.wav b/regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_cdlz/silence.wav
new file mode 100644
index 00000000000..9b2ecc0eea0
--- /dev/null
+++ b/regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_cdlz/silence.wav
Binary files differ
diff --git a/regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_cdzl/in.cue b/regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_cdzl/in.cue
new file mode 100644
index 00000000000..93f44224774
--- /dev/null
+++ b/regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_cdzl/in.cue
@@ -0,0 +1,60 @@
+FILE "silence.wav" WAVE
+TRACK 01 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 02 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 03 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 04 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 05 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 06 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 07 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 08 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 09 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 10 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 11 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 12 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 13 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 14 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 15 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 16 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 17 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 18 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 19 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 20 AUDIO
+ INDEX 01 00:00:00
diff --git a/regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_cdzl/in.params b/regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_cdzl/in.params
new file mode 100644
index 00000000000..d222c0d1c8d
--- /dev/null
+++ b/regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_cdzl/in.params
@@ -0,0 +1 @@
+-c cdzl \ No newline at end of file
diff --git a/regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_cdzl/silence.wav b/regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_cdzl/silence.wav
new file mode 100644
index 00000000000..9b2ecc0eea0
--- /dev/null
+++ b/regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_cdzl/silence.wav
Binary files differ
diff --git a/regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_none/in.cue b/regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_none/in.cue
new file mode 100644
index 00000000000..93f44224774
--- /dev/null
+++ b/regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_none/in.cue
@@ -0,0 +1,60 @@
+FILE "silence.wav" WAVE
+TRACK 01 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 02 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 03 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 04 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 05 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 06 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 07 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 08 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 09 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 10 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 11 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 12 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 13 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 14 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 15 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 16 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 17 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 18 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 19 AUDIO
+ INDEX 01 00:00:00
+FILE "silence.wav" WAVE
+TRACK 20 AUDIO
+ INDEX 01 00:00:00
diff --git a/regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_none/in.params b/regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_none/in.params
new file mode 100644
index 00000000000..27684aad935
--- /dev/null
+++ b/regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_none/in.params
@@ -0,0 +1 @@
+-c none \ No newline at end of file
diff --git a/regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_none/silence.wav b/regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_none/silence.wav
new file mode 100644
index 00000000000..9b2ecc0eea0
--- /dev/null
+++ b/regtests/chdman/input/createcd_cue_audio_silence_wav_20_tracks_none/silence.wav
Binary files differ
diff --git a/regtests/chdman/input/createcd_cue_empty/in.bin b/regtests/chdman/input/createcd_cue_empty/in.bin
new file mode 100644
index 00000000000..3c80d90ff2c
--- /dev/null
+++ b/regtests/chdman/input/createcd_cue_empty/in.bin
Binary files differ
diff --git a/regtests/chdman/input/createcd_cue_empty/in.cue b/regtests/chdman/input/createcd_cue_empty/in.cue
new file mode 100644
index 00000000000..699b6ead101
--- /dev/null
+++ b/regtests/chdman/input/createcd_cue_empty/in.cue
@@ -0,0 +1,4 @@
+FILE "in.bin" BINARY
+ TRACK 01 MODE1/2352
+ INDEX 01 00:00:00
+ REM LEAD-OUT 00:08:08
diff --git a/regtests/chdman/input/createcd_iso_empty/in.iso b/regtests/chdman/input/createcd_iso_empty/in.iso
new file mode 100644
index 00000000000..ec1c5b8dcdc
--- /dev/null
+++ b/regtests/chdman/input/createcd_iso_empty/in.iso
Binary files differ
diff --git a/regtests/chdman/input/createcd_nrg_audio_silence/in.nrg b/regtests/chdman/input/createcd_nrg_audio_silence/in.nrg
new file mode 100644
index 00000000000..fa9d6bcc723
--- /dev/null
+++ b/regtests/chdman/input/createcd_nrg_audio_silence/in.nrg
Binary files differ
diff --git a/regtests/chdman/input/createcd_nrg_empty/in.nrg b/regtests/chdman/input/createcd_nrg_empty/in.nrg
new file mode 100644
index 00000000000..4c2644a2fc7
--- /dev/null
+++ b/regtests/chdman/input/createcd_nrg_empty/in.nrg
Binary files differ
diff --git a/regtests/chdman/input/createcd_toc_empty/data.bin b/regtests/chdman/input/createcd_toc_empty/data.bin
new file mode 100644
index 00000000000..41757946af7
--- /dev/null
+++ b/regtests/chdman/input/createcd_toc_empty/data.bin
Binary files differ
diff --git a/regtests/chdman/input/createcd_toc_empty/in.toc b/regtests/chdman/input/createcd_toc_empty/in.toc
new file mode 100644
index 00000000000..5f5e42da1b7
--- /dev/null
+++ b/regtests/chdman/input/createcd_toc_empty/in.toc
@@ -0,0 +1,8 @@
+CD_ROM
+
+
+// Track 1
+TRACK MODE1_RAW RW_RAW
+NO COPY
+DATAFILE "data.bin" 00:08:08 // length in bytes: 1488384
+
diff --git a/regtests/chdman/input/createhd_1/in.params b/regtests/chdman/input/createhd_1/in.params
new file mode 100644
index 00000000000..31c49301ea1
--- /dev/null
+++ b/regtests/chdman/input/createhd_1/in.params
@@ -0,0 +1 @@
+-chs 407,4,26 -ss 512 \ No newline at end of file
diff --git a/regtests/chdman/input/createhd_2/in.params b/regtests/chdman/input/createhd_2/in.params
new file mode 100644
index 00000000000..7898d91fbaa
--- /dev/null
+++ b/regtests/chdman/input/createhd_2/in.params
@@ -0,0 +1 @@
+-chs 407,4,26 \ No newline at end of file
diff --git a/regtests/chdman/input/createhd_3/in.params b/regtests/chdman/input/createhd_3/in.params
new file mode 100644
index 00000000000..f452941d355
--- /dev/null
+++ b/regtests/chdman/input/createhd_3/in.params
@@ -0,0 +1 @@
+-chs 407,4,26 -ss 1024 \ No newline at end of file
diff --git a/regtests/chdman/input/createhd_4/in.params b/regtests/chdman/input/createhd_4/in.params
new file mode 100644
index 00000000000..51eee8734e1
--- /dev/null
+++ b/regtests/chdman/input/createhd_4/in.params
@@ -0,0 +1 @@
+-s 10485760 \ No newline at end of file
diff --git a/regtests/chdman/input/createhd_5/in.params b/regtests/chdman/input/createhd_5/in.params
new file mode 100644
index 00000000000..27e6fe0e955
--- /dev/null
+++ b/regtests/chdman/input/createhd_5/in.params
@@ -0,0 +1 @@
+-s 10485760 -ss 1024 \ No newline at end of file
diff --git a/regtests/chdman/input/createhd_raw_empty/in.raw b/regtests/chdman/input/createhd_raw_empty/in.raw
new file mode 100644
index 00000000000..098cba05d0c
--- /dev/null
+++ b/regtests/chdman/input/createhd_raw_empty/in.raw
Binary files differ
diff --git a/regtests/chdman/input/createhd_raw_empty_flac/in.params b/regtests/chdman/input/createhd_raw_empty_flac/in.params
new file mode 100644
index 00000000000..20f6ee09778
--- /dev/null
+++ b/regtests/chdman/input/createhd_raw_empty_flac/in.params
@@ -0,0 +1 @@
+-c flac \ No newline at end of file
diff --git a/regtests/chdman/input/createhd_raw_empty_flac/in.raw b/regtests/chdman/input/createhd_raw_empty_flac/in.raw
new file mode 100644
index 00000000000..098cba05d0c
--- /dev/null
+++ b/regtests/chdman/input/createhd_raw_empty_flac/in.raw
Binary files differ
diff --git a/regtests/chdman/input/createhd_raw_empty_huff/in.params b/regtests/chdman/input/createhd_raw_empty_huff/in.params
new file mode 100644
index 00000000000..ae90b88df8e
--- /dev/null
+++ b/regtests/chdman/input/createhd_raw_empty_huff/in.params
@@ -0,0 +1 @@
+-c huff \ No newline at end of file
diff --git a/regtests/chdman/input/createhd_raw_empty_huff/in.raw b/regtests/chdman/input/createhd_raw_empty_huff/in.raw
new file mode 100644
index 00000000000..098cba05d0c
--- /dev/null
+++ b/regtests/chdman/input/createhd_raw_empty_huff/in.raw
Binary files differ
diff --git a/regtests/chdman/input/createhd_raw_empty_lzma/in.params b/regtests/chdman/input/createhd_raw_empty_lzma/in.params
new file mode 100644
index 00000000000..5e92634ab96
--- /dev/null
+++ b/regtests/chdman/input/createhd_raw_empty_lzma/in.params
@@ -0,0 +1 @@
+-c lzma \ No newline at end of file
diff --git a/regtests/chdman/input/createhd_raw_empty_lzma/in.raw b/regtests/chdman/input/createhd_raw_empty_lzma/in.raw
new file mode 100644
index 00000000000..098cba05d0c
--- /dev/null
+++ b/regtests/chdman/input/createhd_raw_empty_lzma/in.raw
Binary files differ
diff --git a/regtests/chdman/input/createhd_raw_empty_none/in.params b/regtests/chdman/input/createhd_raw_empty_none/in.params
new file mode 100644
index 00000000000..27684aad935
--- /dev/null
+++ b/regtests/chdman/input/createhd_raw_empty_none/in.params
@@ -0,0 +1 @@
+-c none \ No newline at end of file
diff --git a/regtests/chdman/input/createhd_raw_empty_none/in.raw b/regtests/chdman/input/createhd_raw_empty_none/in.raw
new file mode 100644
index 00000000000..098cba05d0c
--- /dev/null
+++ b/regtests/chdman/input/createhd_raw_empty_none/in.raw
Binary files differ
diff --git a/regtests/chdman/input/createhd_raw_empty_zlib/in.params b/regtests/chdman/input/createhd_raw_empty_zlib/in.params
new file mode 100644
index 00000000000..3ddf00b4e60
--- /dev/null
+++ b/regtests/chdman/input/createhd_raw_empty_zlib/in.params
@@ -0,0 +1 @@
+-c zlib \ No newline at end of file
diff --git a/regtests/chdman/input/createhd_raw_empty_zlib/in.raw b/regtests/chdman/input/createhd_raw_empty_zlib/in.raw
new file mode 100644
index 00000000000..098cba05d0c
--- /dev/null
+++ b/regtests/chdman/input/createhd_raw_empty_zlib/in.raw
Binary files differ
diff --git a/regtests/chdman/input/createld_avi_uyvy_3_frames_no_audio/in.avi b/regtests/chdman/input/createld_avi_uyvy_3_frames_no_audio/in.avi
new file mode 100644
index 00000000000..21d518d11da
--- /dev/null
+++ b/regtests/chdman/input/createld_avi_uyvy_3_frames_no_audio/in.avi
Binary files differ
diff --git a/regtests/chdman/input/createld_avi_yuv2_3_frames_no_audio/in.avi b/regtests/chdman/input/createld_avi_yuv2_3_frames_no_audio/in.avi
new file mode 100644
index 00000000000..0ef28668558
--- /dev/null
+++ b/regtests/chdman/input/createld_avi_yuv2_3_frames_no_audio/in.avi
Binary files differ
diff --git a/regtests/chdman/output/copy_cd_cue_audio_silence_wav_20_tracks_v4/out.chd b/regtests/chdman/output/copy_cd_cue_audio_silence_wav_20_tracks_v4/out.chd
new file mode 100644
index 00000000000..5029267c6f4
--- /dev/null
+++ b/regtests/chdman/output/copy_cd_cue_audio_silence_wav_20_tracks_v4/out.chd
Binary files differ
diff --git a/regtests/chdman/output/copy_cd_cue_audio_silence_wav_v4/out.chd b/regtests/chdman/output/copy_cd_cue_audio_silence_wav_v4/out.chd
new file mode 100644
index 00000000000..bff1b64c8b9
--- /dev/null
+++ b/regtests/chdman/output/copy_cd_cue_audio_silence_wav_v4/out.chd
Binary files differ
diff --git a/regtests/chdman/output/copy_cd_cue_empty_v4/out.chd b/regtests/chdman/output/copy_cd_cue_empty_v4/out.chd
new file mode 100644
index 00000000000..af63abb92dd
--- /dev/null
+++ b/regtests/chdman/output/copy_cd_cue_empty_v4/out.chd
Binary files differ
diff --git a/regtests/chdman/output/copy_cd_nrg_empty_v4/out.chd b/regtests/chdman/output/copy_cd_nrg_empty_v4/out.chd
new file mode 100644
index 00000000000..f1dd17c8648
--- /dev/null
+++ b/regtests/chdman/output/copy_cd_nrg_empty_v4/out.chd
Binary files differ
diff --git a/regtests/chdman/output/copy_cd_toc_empty_v4/out.chd b/regtests/chdman/output/copy_cd_toc_empty_v4/out.chd
new file mode 100644
index 00000000000..2a4b79ca2be
--- /dev/null
+++ b/regtests/chdman/output/copy_cd_toc_empty_v4/out.chd
Binary files differ
diff --git a/regtests/chdman/output/copy_hd_1/out.chd b/regtests/chdman/output/copy_hd_1/out.chd
new file mode 100644
index 00000000000..a7ca9ae4078
--- /dev/null
+++ b/regtests/chdman/output/copy_hd_1/out.chd
Binary files differ
diff --git a/regtests/chdman/output/createcd_cue_audio_silence/out.chd b/regtests/chdman/output/createcd_cue_audio_silence/out.chd
new file mode 100644
index 00000000000..ea09fe064b7
--- /dev/null
+++ b/regtests/chdman/output/createcd_cue_audio_silence/out.chd
Binary files differ
diff --git a/regtests/chdman/output/createcd_cue_audio_silence_wav/out.chd b/regtests/chdman/output/createcd_cue_audio_silence_wav/out.chd
new file mode 100644
index 00000000000..c6ba0920dd7
--- /dev/null
+++ b/regtests/chdman/output/createcd_cue_audio_silence_wav/out.chd
Binary files differ
diff --git a/regtests/chdman/output/createcd_cue_audio_silence_wav_20_tracks/out.chd b/regtests/chdman/output/createcd_cue_audio_silence_wav_20_tracks/out.chd
new file mode 100644
index 00000000000..6a66b9d2257
--- /dev/null
+++ b/regtests/chdman/output/createcd_cue_audio_silence_wav_20_tracks/out.chd
Binary files differ
diff --git a/regtests/chdman/output/createcd_cue_audio_silence_wav_20_tracks_cdfl/out.chd b/regtests/chdman/output/createcd_cue_audio_silence_wav_20_tracks_cdfl/out.chd
new file mode 100644
index 00000000000..b1f977b82d2
--- /dev/null
+++ b/regtests/chdman/output/createcd_cue_audio_silence_wav_20_tracks_cdfl/out.chd
Binary files differ
diff --git a/regtests/chdman/output/createcd_cue_audio_silence_wav_20_tracks_cdlz/out.chd b/regtests/chdman/output/createcd_cue_audio_silence_wav_20_tracks_cdlz/out.chd
new file mode 100644
index 00000000000..ad65d205db6
--- /dev/null
+++ b/regtests/chdman/output/createcd_cue_audio_silence_wav_20_tracks_cdlz/out.chd
Binary files differ
diff --git a/regtests/chdman/output/createcd_cue_audio_silence_wav_20_tracks_cdzl/out.chd b/regtests/chdman/output/createcd_cue_audio_silence_wav_20_tracks_cdzl/out.chd
new file mode 100644
index 00000000000..6d7ae235898
--- /dev/null
+++ b/regtests/chdman/output/createcd_cue_audio_silence_wav_20_tracks_cdzl/out.chd
Binary files differ
diff --git a/regtests/chdman/output/createcd_cue_audio_silence_wav_20_tracks_none/out.chd b/regtests/chdman/output/createcd_cue_audio_silence_wav_20_tracks_none/out.chd
new file mode 100644
index 00000000000..5a71819d84b
--- /dev/null
+++ b/regtests/chdman/output/createcd_cue_audio_silence_wav_20_tracks_none/out.chd
Binary files differ
diff --git a/regtests/chdman/output/createcd_cue_empty/out.chd b/regtests/chdman/output/createcd_cue_empty/out.chd
new file mode 100644
index 00000000000..f8d3b6cf38d
--- /dev/null
+++ b/regtests/chdman/output/createcd_cue_empty/out.chd
Binary files differ
diff --git a/regtests/chdman/output/createcd_iso_empty/out.chd b/regtests/chdman/output/createcd_iso_empty/out.chd
new file mode 100644
index 00000000000..38ec5d5bb73
--- /dev/null
+++ b/regtests/chdman/output/createcd_iso_empty/out.chd
Binary files differ
diff --git a/regtests/chdman/output/createcd_nrg_audio_silence/out.chd b/regtests/chdman/output/createcd_nrg_audio_silence/out.chd
new file mode 100644
index 00000000000..909eb8a3227
--- /dev/null
+++ b/regtests/chdman/output/createcd_nrg_audio_silence/out.chd
Binary files differ
diff --git a/regtests/chdman/output/createcd_nrg_empty/out.chd b/regtests/chdman/output/createcd_nrg_empty/out.chd
new file mode 100644
index 00000000000..8d107159857
--- /dev/null
+++ b/regtests/chdman/output/createcd_nrg_empty/out.chd
Binary files differ
diff --git a/regtests/chdman/output/createcd_toc_empty/out.chd b/regtests/chdman/output/createcd_toc_empty/out.chd
new file mode 100644
index 00000000000..ada82c7ed8d
--- /dev/null
+++ b/regtests/chdman/output/createcd_toc_empty/out.chd
Binary files differ
diff --git a/regtests/chdman/output/createhd_1/out.chd b/regtests/chdman/output/createhd_1/out.chd
new file mode 100644
index 00000000000..fe9f2cb8c8e
--- /dev/null
+++ b/regtests/chdman/output/createhd_1/out.chd
Binary files differ
diff --git a/regtests/chdman/output/createhd_2/out.chd b/regtests/chdman/output/createhd_2/out.chd
new file mode 100644
index 00000000000..fe9f2cb8c8e
--- /dev/null
+++ b/regtests/chdman/output/createhd_2/out.chd
Binary files differ
diff --git a/regtests/chdman/output/createhd_3/out.chd b/regtests/chdman/output/createhd_3/out.chd
new file mode 100644
index 00000000000..b4d3dfc230d
--- /dev/null
+++ b/regtests/chdman/output/createhd_3/out.chd
Binary files differ
diff --git a/regtests/chdman/output/createhd_4/out.chd b/regtests/chdman/output/createhd_4/out.chd
new file mode 100644
index 00000000000..93d60a121b7
--- /dev/null
+++ b/regtests/chdman/output/createhd_4/out.chd
Binary files differ
diff --git a/regtests/chdman/output/createhd_5/out.chd b/regtests/chdman/output/createhd_5/out.chd
new file mode 100644
index 00000000000..19f90331240
--- /dev/null
+++ b/regtests/chdman/output/createhd_5/out.chd
Binary files differ
diff --git a/regtests/chdman/output/createhd_raw_empty/out.chd b/regtests/chdman/output/createhd_raw_empty/out.chd
new file mode 100644
index 00000000000..326fd46fad1
--- /dev/null
+++ b/regtests/chdman/output/createhd_raw_empty/out.chd
Binary files differ
diff --git a/regtests/chdman/output/createhd_raw_empty_flac/out.chd b/regtests/chdman/output/createhd_raw_empty_flac/out.chd
new file mode 100644
index 00000000000..70172026008
--- /dev/null
+++ b/regtests/chdman/output/createhd_raw_empty_flac/out.chd
Binary files differ
diff --git a/regtests/chdman/output/createhd_raw_empty_huff/out.chd b/regtests/chdman/output/createhd_raw_empty_huff/out.chd
new file mode 100644
index 00000000000..9a3e77cca3a
--- /dev/null
+++ b/regtests/chdman/output/createhd_raw_empty_huff/out.chd
Binary files differ
diff --git a/regtests/chdman/output/createhd_raw_empty_lzma/out.chd b/regtests/chdman/output/createhd_raw_empty_lzma/out.chd
new file mode 100644
index 00000000000..128ee583ae9
--- /dev/null
+++ b/regtests/chdman/output/createhd_raw_empty_lzma/out.chd
Binary files differ
diff --git a/regtests/chdman/output/createhd_raw_empty_none/out.chd b/regtests/chdman/output/createhd_raw_empty_none/out.chd
new file mode 100644
index 00000000000..287ede3435f
--- /dev/null
+++ b/regtests/chdman/output/createhd_raw_empty_none/out.chd
Binary files differ
diff --git a/regtests/chdman/output/createhd_raw_empty_zlib/out.chd b/regtests/chdman/output/createhd_raw_empty_zlib/out.chd
new file mode 100644
index 00000000000..ed6e28496a0
--- /dev/null
+++ b/regtests/chdman/output/createhd_raw_empty_zlib/out.chd
Binary files differ
diff --git a/regtests/chdman/output/createld_avi_uyvy_3_frames_no_audio/out.chd b/regtests/chdman/output/createld_avi_uyvy_3_frames_no_audio/out.chd
new file mode 100644
index 00000000000..36ffbd8b759
--- /dev/null
+++ b/regtests/chdman/output/createld_avi_uyvy_3_frames_no_audio/out.chd
Binary files differ
diff --git a/regtests/chdman/output/createld_avi_yuv2_3_frames_no_audio/out.chd b/regtests/chdman/output/createld_avi_yuv2_3_frames_no_audio/out.chd
new file mode 100644
index 00000000000..36ffbd8b759
--- /dev/null
+++ b/regtests/chdman/output/createld_avi_yuv2_3_frames_no_audio/out.chd
Binary files differ