From e8d725e0518845a80aa4b700bd9f3607b265d60d Mon Sep 17 00:00:00 2001 From: Fabian Homborg Date: Sun, 20 Sep 2020 10:35:18 +0200 Subject: [PATCH] Add tests for type While we use `type -q` a bunch, the other options are kind of unutilized, and so having a test is nice when we want to reimplement it. See #7342. --- tests/checks/type.fish | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 tests/checks/type.fish diff --git a/tests/checks/type.fish b/tests/checks/type.fish new file mode 100644 index 000000000..ed94f1add --- /dev/null +++ b/tests/checks/type.fish @@ -0,0 +1,42 @@ +# RUN: %fish %s +# +# Tests for the `type` builtin +# First type --query, which is the most important part. +type -q type +echo $status +# CHECK: 0 +type -q realpath +echo $status +# CHECK: 0 +type -q sh +echo $status +# CHECK: 0 +type -q doesnotexist-pleasedonotexist-2324242 +echo $status +# CHECK: 1 +type -q doesnotexist-pleasedonotexist-2324242 sh +echo $status +# CHECK: 0 +type -q sh doesnotexist-pleasedonotexist-2324242 +echo $status +# CHECK: 0 +type -q '[' +echo $status +# CHECK: 0 + +# Test that we print a command path +type sh +# (we resolve the path, so if /bin is a symlink to /usr/bin this shows /usr/bin/sh) +# CHECK: sh is {{.*}}/bin/sh + +# Test that we print a function definition. +# The exact definition here depends on the system, so we'll ignore the actual code. +type realpath | grep -v "^ *" +# CHECK: realpath is a function with definition +# CHECK: # Defined in {{.*}}/functions/realpath.fish @ line {{\d+}} +# CHECK: function realpath --description 'print the resolved path [command realpath]' +# CHECK: end + +type -t realpath foobar +# CHECK: function +# CHECKERR: type: Could not find {{.}}foobar{{.}}