patch 8.0.0104
Problem:    Value of 'thesaurus' option not checked properly.
Solution:   Add P_NDNAME flag. (Daisuke Suzuki)
diff --git a/src/testdir/test_options.vim b/src/testdir/test_options.vim
index 88be8f9..6dfb1bb 100644
--- a/src/testdir/test_options.vim
+++ b/src/testdir/test_options.vim
@@ -107,17 +107,25 @@
   call assert_fails(":set kmp=trunc\x00name", "trunc")
 endfunc
 
-func Test_dictionary()
+func Check_dir_option(name)
   " Check that it's possible to set the option.
-  set dictionary=/usr/share/dict/words
-  call assert_equal('/usr/share/dict/words', &dictionary)
-  set dictionary=/usr/share/dict/words,/and/there
-  call assert_equal('/usr/share/dict/words,/and/there', &dictionary)
-  set dictionary=/usr/share/dict\ words
-  call assert_equal('/usr/share/dict words', &dictionary)
+  exe 'set ' . a:name . '=/usr/share/dict/words'
+  call assert_equal('/usr/share/dict/words', eval('&' . a:name))
+  exe 'set ' . a:name . '=/usr/share/dict/words,/and/there'
+  call assert_equal('/usr/share/dict/words,/and/there', eval('&' . a:name))
+  exe 'set ' . a:name . '=/usr/share/dict\ words'
+  call assert_equal('/usr/share/dict words', eval('&' . a:name))
 
   " Check rejecting weird characters.
-  call assert_fails("set dictionary=/not&there", "E474:")
-  call assert_fails("set dictionary=/not>there", "E474:")
-  call assert_fails("set dictionary=/not.*there", "E474:")
+  call assert_fails("set " . a:name . "=/not&there", "E474:")
+  call assert_fails("set " . a:name . "=/not>there", "E474:")
+  call assert_fails("set " . a:name . "=/not.*there", "E474:")
+endfunc
+
+func Test_dictionary()
+  call Check_dir_option('dictionary')
+endfunc
+
+func Test_thesaurus()
+  call Check_dir_option('thesaurus')
 endfunc