diff --git a/src/Makefile b/src/Makefile
index e7d0b38..2a2940e 100644
--- a/src/Makefile
+++ b/src/Makefile
@@ -2308,6 +2308,7 @@
 	test_windows_home \
 	test_wordcount \
 	test_writefile \
+	test_xxd \
 	test_alot_latin \
 	test_alot_utf8 \
 	test_alot:
diff --git a/src/testdir/Make_all.mak b/src/testdir/Make_all.mak
index b0bfe26..e36089a 100644
--- a/src/testdir/Make_all.mak
+++ b/src/testdir/Make_all.mak
@@ -188,6 +188,7 @@
 	    test_windows_home.res \
 	    test_wordcount.res \
 	    test_writefile.res \
+	    test_xxd.res \
 	    test_alot_latin.res \
 	    test_alot_utf8.res \
 	    test_alot.res
diff --git a/src/testdir/Makefile b/src/testdir/Makefile
index 90e0cdb..459b868 100644
--- a/src/testdir/Makefile
+++ b/src/testdir/Makefile
@@ -4,6 +4,7 @@
 
 # Use console or GUI.
 VIMPROG = ../vim
+XXDPROG = ../xxd/xxd
 # VIMPROG = ../gvim
 
 SCRIPTSOURCE = ../../runtime
@@ -145,3 +146,6 @@
 
 opt_test.vim: ../option.c gen_opt_test.vim
 	$(VIMPROG) -u NONE -S gen_opt_test.vim --noplugin --not-a-term ../option.c
+
+test_xxd.res:
+	XXD=$(XXDPROG); export XXD; $(RUN_VIMTEST) $(NO_INITS) -S runtest.vim test_xxd.vim
diff --git a/src/testdir/runtest.vim b/src/testdir/runtest.vim
index 3a32f45..5b8126d 100644
--- a/src/testdir/runtest.vim
+++ b/src/testdir/runtest.vim
@@ -199,7 +199,11 @@
     write
   endif
 
-  let message = 'Executed ' . s:done . (s:done > 1 ? ' tests' : ' test')
+  if s:done == 0
+    let message = 'NO tests executed'
+  else
+    let message = 'Executed ' . s:done . (s:done > 1 ? ' tests' : ' test')
+  endif
   echo message
   call add(s:messages, message)
   if s:fail > 0
diff --git a/src/testdir/test_xxd.vim b/src/testdir/test_xxd.vim
new file mode 100644
index 0000000..f81b8fa
--- /dev/null
+++ b/src/testdir/test_xxd.vim
@@ -0,0 +1,94 @@
+" Test for the xxd command
+if empty($XXD) || !executable($XXD)
+  finish
+endif
+
+func! PrepareBuffer(command)
+  %d
+  call append(0, a:command)
+  $d
+  w XXDfile
+endfunc
+
+func! s:Mess(counter)
+  return printf("Failed xxd test %d:", a:counter)
+endfunc
+
+func! Test_xxd()
+  new
+  call PrepareBuffer(range(1,30))
+  " Test 1: simple, filter the result through xxd
+  let s:test = 1
+  %!$XXD %
+  let expected = [
+        \ '00000000: 310a 320a 330a 340a 350a 360a 370a 380a  1.2.3.4.5.6.7.8.',
+        \ '00000010: 390a 3130 0a31 310a 3132 0a31 330a 3134  9.10.11.12.13.14',
+        \ '00000020: 0a31 350a 3136 0a31 370a 3138 0a31 390a  .15.16.17.18.19.',
+        \ '00000030: 3230 0a32 310a 3232 0a32 330a 3234 0a32  20.21.22.23.24.2',
+        \ '00000040: 350a 3236 0a32 370a 3238 0a32 390a 3330  5.26.27.28.29.30',
+        \ '00000050: 0a                                       .']
+  call assert_equal(expected, getline(1,'$'), s:Mess(s:test))
+  " Test 2: reverse the result
+  let s:test += 1
+  %!$XXD -r
+  call assert_equal(map(range(1,30), {v,c -> string(c)}), getline(1,'$'), s:Mess(s:test))
+
+  " Test 3: Skip the first 30 bytes
+  let s:test += 1
+  %!$XXD -s 0x30 %
+  call assert_equal(expected[3:], getline(1,'$'), s:Mess(s:test))
+
+  " Test 4: Skip the first 30 bytes
+  let s:test += 1
+  %!$XXD -s -0x31 %
+  call assert_equal(expected[2:], getline(1,'$'), s:Mess(s:test))
+
+  " Test 5: Print 120 bytes as continuous hexdump with 20 octets per line
+  let s:test += 1
+  %d
+  0r! $XXD -l 120 -ps -c 20 ../../runtime/doc/xxd.1
+  $d
+  let expected = [
+      \ '2e54482058584420312022417567757374203139',
+      \ '39362220224d616e75616c207061676520666f72',
+      \ '20787864220a2e5c220a2e5c222032317374204d',
+      \ '617920313939360a2e5c22204d616e2070616765',
+      \ '20617574686f723a0a2e5c2220202020546f6e79',
+      \ '204e7567656e74203c746f6e79407363746e7567']
+  call assert_equal(expected, getline(1,'$'), s:Mess(s:test))
+  " Test 6: Print the date from xxd.1
+  let s:test += 1
+  %d
+  0r! $XXD -s 0x36 -l 13 -c 13 ../../runtime/doc/xxd.1
+  $d
+  call assert_equal('00000036: 3231 7374 204d 6179 2031 3939 36  21st May 1996', getline(1), s:Mess(s:test))
+  " Test 7: Print C include
+  let s:test += 1
+  call writefile(['TESTabcd09'], 'XXDfile')
+  %d
+  0r! $XXD -i XXDfile
+  $d
+  let expected = ['unsigned char XXDfile[] = {',
+        \ '  0x54, 0x45, 0x53, 0x54, 0x61, 0x62, 0x63, 0x64, 0x30, 0x39, 0x0a', '};',
+        \ 'unsigned int XXDfile_len = 11;']
+  call assert_equal(expected, getline(1,'$'), s:Mess(s:test))
+  " Test 8: Print C include capitalized
+  let s:test += 1
+  call writefile(['TESTabcd09'], 'XXDfile')
+  %d
+  0r! $XXD -i -C XXDfile
+  $d
+  let expected = ['unsigned char XXDFILE[] = {',
+        \ '  0x54, 0x45, 0x53, 0x54, 0x61, 0x62, 0x63, 0x64, 0x30, 0x39, 0x0a', '};',
+        \ 'unsigned int XXDFILE_LEN = 11;']
+  call assert_equal(expected, getline(1,'$'), s:Mess(s:test))
+  " Test 9: Create a  file with containing a single 'A'
+  let s:test += 1
+  call delete('XXDfile')
+  call system('echo "010000: 41"|'.$XXD.' -r -s -0x10000 > XXDfile')
+  call PrepareBuffer(readfile('XXDfile')[0])
+  call assert_equal('A', getline(1), s:Mess(s:test))
+  call delete('XXDfile')
+  %d
+  bw!
+endfunc
diff --git a/src/version.c b/src/version.c
index 63c274f..196d61c 100644
--- a/src/version.c
+++ b/src/version.c
@@ -763,6 +763,8 @@
 static int included_patches[] =
 {   /* Add new patch number below this line */
 /**/
+    1689,
+/**/
     1688,
 /**/
     1687,
