Merge nucleic/sleek-thistle-egret-fyej into dev
This commit is contained in:
@@ -0,0 +1,193 @@
|
||||
name: "Builtins: history"
|
||||
cases:
|
||||
- name: "basic history saving"
|
||||
args: ["-o", "history"]
|
||||
env:
|
||||
HISTFILE: "history-file.txt"
|
||||
stdin: |
|
||||
echo something
|
||||
echo else
|
||||
|
||||
- name: "existing history file"
|
||||
pty: true
|
||||
env:
|
||||
HISTFILE: "history-file.txt"
|
||||
test_files:
|
||||
- path: "history-file.txt"
|
||||
contents: |
|
||||
a b c
|
||||
1 2 3
|
||||
ignore_stdout: true # Prompts and other don't quite line up
|
||||
stdin: |
|
||||
#expect-prompt
|
||||
history >history-output.txt
|
||||
#send:Enter
|
||||
#expect-prompt
|
||||
#send:Ctrl+D
|
||||
|
||||
- name: "existing history file with timestamps"
|
||||
pty: true
|
||||
env:
|
||||
HISTFILE: "history-file.txt"
|
||||
test_files:
|
||||
- path: "history-file.txt"
|
||||
contents: |
|
||||
#1750000000
|
||||
a b c
|
||||
#1750000001
|
||||
1 2 3
|
||||
ignore_stdout: true # Prompts and other don't quite line up
|
||||
stdin: |
|
||||
#expect-prompt
|
||||
history >history-output.txt
|
||||
#send:Enter
|
||||
#expect-prompt
|
||||
#send:Ctrl+D
|
||||
|
||||
- name: "existing history file with timestamps and HISTTIMEFORMAT"
|
||||
pty: true
|
||||
env:
|
||||
HISTFILE: "history-file.txt"
|
||||
HISTTIMEFORMAT: "%C "
|
||||
test_files:
|
||||
- path: "history-file.txt"
|
||||
contents: |
|
||||
#1750000000
|
||||
a b c
|
||||
#1750000001
|
||||
1 2 3
|
||||
ignore_stdout: true # Prompts and other don't quite line up
|
||||
stdin: |
|
||||
#expect-prompt
|
||||
#send:Ctrl+D
|
||||
|
||||
- name: "history N"
|
||||
args: ["-o", "history"]
|
||||
env:
|
||||
HISTFILE: "history-file.txt"
|
||||
stdin: |
|
||||
: cmd1
|
||||
: cmd2
|
||||
history 2
|
||||
|
||||
- name: "history with duplicates"
|
||||
args: ["-o", "history"]
|
||||
env:
|
||||
HISTFILE: "history-file.txt"
|
||||
stdin: |
|
||||
: cmd1
|
||||
: cmd1
|
||||
: cmd1
|
||||
: cmd2
|
||||
: cmd1
|
||||
history
|
||||
|
||||
- name: "history -c"
|
||||
args: ["-o", "history"]
|
||||
env:
|
||||
HISTFILE: "history-file.txt"
|
||||
stdin: |
|
||||
: cmd1
|
||||
history -c
|
||||
history
|
||||
|
||||
- name: "history -d"
|
||||
args: ["-o", "history"]
|
||||
env:
|
||||
HISTFILE: "history-file.txt"
|
||||
stdin: |
|
||||
: cmd1
|
||||
history -d 1
|
||||
history
|
||||
|
||||
- name: "history -d: negative offset"
|
||||
args: ["-o", "history"]
|
||||
env:
|
||||
HISTFILE: "history-file.txt"
|
||||
stdin: |
|
||||
: cmd1
|
||||
: cmd2
|
||||
history -d -2
|
||||
history
|
||||
|
||||
- name: "history -a"
|
||||
args: ["-o", "history"]
|
||||
env:
|
||||
HISTFILE: "history-file.txt"
|
||||
stdin: |
|
||||
echo "[histfile]"
|
||||
cat $HISTFILE
|
||||
|
||||
history -a
|
||||
|
||||
echo "[histfile after -a]"
|
||||
cat $HISTFILE
|
||||
|
||||
history -a
|
||||
|
||||
echo "[histfile after second -a]"
|
||||
cat $HISTFILE
|
||||
|
||||
- name: "history -w"
|
||||
args: ["-o", "history"]
|
||||
env:
|
||||
HISTFILE: "history-file.txt"
|
||||
stdin: |
|
||||
echo "[histfile]"
|
||||
cat $HISTFILE
|
||||
|
||||
history -w
|
||||
|
||||
echo "[histfile after -w]"
|
||||
cat $HISTFILE
|
||||
|
||||
history -w
|
||||
|
||||
echo "[histfile after second -w]"
|
||||
cat $HISTFILE
|
||||
|
||||
- name: "history -w with explicit file"
|
||||
args: ["-o", "history"]
|
||||
env:
|
||||
HISTFILE: "history-file.txt"
|
||||
stdin: |
|
||||
: cmd1
|
||||
history -w some-file.txt
|
||||
|
||||
- name: "history -s"
|
||||
known_failure: true # NOTE: bash excludes the history command itself from history
|
||||
args: ["-o", "history"]
|
||||
env:
|
||||
HISTFILE: "history-file.txt"
|
||||
stdin: |
|
||||
history -s a b c
|
||||
history
|
||||
|
||||
- name: "HISTCMD"
|
||||
args: ["-o", "history"]
|
||||
env:
|
||||
HISTFILE: "history-file.txt"
|
||||
stdin: |
|
||||
: cmd1
|
||||
echo $HISTCMD
|
||||
: cmd2
|
||||
echo $HISTCMD
|
||||
: cmd3
|
||||
echo $HISTCMD
|
||||
|
||||
- name: "HISTTIMEFORMAT"
|
||||
known_failure: true # TODO(history): needs triage
|
||||
args: ["-o", "history"]
|
||||
env:
|
||||
HISTFILE: "history-file.txt"
|
||||
HISTTIMEFORMAT: "century=%C "
|
||||
stdin: |
|
||||
: cmd1
|
||||
: cmd2
|
||||
history
|
||||
|
||||
- name: "history file with unreadable lines"
|
||||
ignore_stderr: true # Ignore brush's warnings about unreadable lines
|
||||
stdin: |
|
||||
bash -c 'printf "\xff\xfe\xfd" >history-file.txt'
|
||||
HISTFILE=history-file.txt $0 -o history -c 'echo hi'
|
||||
Reference in New Issue
Block a user