Skip to content

Commit

Permalink
Add lint to project and fix warnings
Browse files Browse the repository at this point in the history
Signed-off-by: Arthur Diniz <[email protected]>
  • Loading branch information
arthurbdiniz authored and samueloph committed Dec 9, 2024
1 parent 78ac479 commit ea192a3
Show file tree
Hide file tree
Showing 2 changed files with 28 additions and 8 deletions.
15 changes: 15 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,21 @@ script:
./tests/tests.sh
```

# Lint

To lint the shell scripts, you need to install `shellcheck` and `checkbashisms`. Those tools will check the scripts for issues and ensure they follow best practices.

- On Debian-like systems: `apt install shellcheck devscripts`
- On Fedora-like systems: `dnf install shellcheck devscripts`

After installation, you can run `shellcheck` and `checkbashisms` by executing the following commands:

```sh
shellcheck wcurl ./tests/*

checkbashisms wcurl ./tests/*
```

# Authors

Samuel Henrique &lt;[[email protected]](mailto:[email protected])&gt;
Expand Down
21 changes: 13 additions & 8 deletions tests/tests.sh
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@
#
# SPDX-License-Identifier: curl

readonly ROOTDIR=$(CDPATH= cd -- "$(dirname -- "$0")/.." && pwd)
ROOTDIR=$(CDPATH=$(cd -- "$(dirname -- "$0")/.." && pwd))
readonly ROOTDIR
export PATH="${ROOTDIR}:${PATH}"

readonly WCURL_CMD="wcurl --dry-run "
Expand Down Expand Up @@ -67,8 +68,9 @@ testParallelIfMoreThanOneUrl()
{
# TODO: This test is wrong for curl 7.65 or older, since --parallel was only introduced in 7.66.
# We should check curl's version and skip this test instead.
urls='example.com/1 example.com/2'
ret=$(${WCURL_CMD} ${urls})
url_1='example.com/1'
url_2='example.com/2'
ret=$(${WCURL_CMD} ${url_1} ${url_2})
assertContains "Verify whether 'wcurl' uses '--parallel' if more than one url is provided" "${ret}" '--parallel'
}

Expand All @@ -82,24 +84,26 @@ testEncodingWhitespace()
testDoubleDash()
{
params='example.com --curl-options=abc'
ret=$(${WCURL_CMD} -- ${params})
ret=$(${WCURL_CMD} -- "${params}")
assertTrue "Verify whether 'wcurl' accepts '--' without erroring" "$?"
assertContains "Verify whether 'wcurl' considers everywhing after '--' a url" "${ret}" '--curl-options=abc'
}

testCurlOptions()
{
params='example.com --curl-options=--foo --curl-options --bar'
ret=$(${WCURL_CMD} ${params})
ret=$(${WCURL_CMD} "${params}")
assertTrue "Verify 'wcurl' accepts '--curl-options' with and without trailing '='" "$?"
assertContains "Verify 'wcurl' correctly passes through --curl-options=<option>" "${ret}" '--foo'
assertContains "Verify 'wcurl' correctly passes through --curl-options <option>" "${ret}" '--bar'
}

testNextAmount()
{
urls='example.com/1 example.com/2 example.com3'
ret=$(${WCURL_CMD} ${urls})
url_1='example.com/1'
url_2='example.com/2'
url_3='example.com3'
ret=$(${WCURL_CMD} ${url_1} ${url_2} ${url_3})
next_count=$(printf '%s' "${ret}" | grep -c -- --next)
assertEquals "Verify whether 'wcurl' includes '--next' for every url besides the first" "${next_count}" "2"
}
Expand Down Expand Up @@ -168,7 +172,7 @@ testUrlDecodingDisabled()
testUrlDecodingWhitespacesQueryString()
{
url='example.com/filename%20with%20spaces?query=string'
ret=$(${WCURL_CMD} ${url} 2>&1)
ret=$(${WCURL_CMD} "${url}" 2>&1)
assertContains "Verify whether 'wcurl' successfully decodes percent-encoded whitespaces in URLs with query strings" "${ret}" 'filename with spaces'
}

Expand Down Expand Up @@ -217,4 +221,5 @@ testUrlDecodingNonLatinLanguages()
## - Options are the same for all URLs (except --next)
## - URLs beginning with '-' (with and without using '--')

# shellcheck disable=SC1091
. shunit2

0 comments on commit ea192a3

Please sign in to comment.