1
1
mirror of https://github.com/wader/fq.git synced 2024-12-27 15:42:07 +03:00
fq/pkg/interp/testdata/value_string.fqtest
Mattias Wadman 518f6af4a8 gojq: Rebase fq fork
Upstream changes:
Many performance improvements
Error message improvments
Lots of refactoring

Most of the JQValue interface changes in gojq fork had to be reworked but
resultet in a much nicer and cleaner changeset.

fq changes:
Assignment to JQValue (like a decode value) now shallowly converts the value into
a jq value before assigning. Was a bit hacky as it was and this makes JQValue
behave more like real jq values. This also fixes some advanced indexing issues.

Actual custom path updates will be something for the future.
2022-04-11 19:23:15 +02:00

120 lines
3.0 KiB
Plaintext

$ fq -i -d mp3 . /test.mp3
mp3> .headers[0].magic | ., tovalue, type, length?
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x0|49 44 33 |ID3 |.headers[0].magic: "ID3" (valid)
"ID3"
"string"
3
mp3> .headers[0].magic[0] | ., type, length?
"I"
"string"
1
mp3> .headers[0].magic[-1000] | ., type, length?
""
"string"
0
mp3> .headers[0].magic[1000] | ., type, length?
""
"string"
0
mp3> .headers[0].magic[1:3] | ., type, length?
"D3"
"string"
2
mp3> .headers[0].magic[0:-1] | ., type, length?
"ID"
"string"
2
mp3> .headers[0].magic[-1000:2000] | ., type, length?
"ID3"
"string"
3
mp3> .headers[0].magic["test"] | ., type, length?
error: expected an object but got: string
mp3> [.headers[0].magic[]] | type, length?
error: cannot iterate over: string
mp3> .headers[0].magic | keys
error: keys cannot be applied to: string
mp3> .headers[0].magic | has("a")
error: has cannot be applied to: string
mp3> .headers[0].magic | has(0)
error: has cannot be applied to: string
mp3> .headers[0].magic | type
"string"
mp3> .headers[0].magic | tonumber
error: invalid number: "ID3"
mp3> .headers[0].magic | tostring
"ID3"
mp3> .headers[0].magic + ""
"ID3"
mp3> .headers[0].magic + 1
error: cannot add: string ("ID3") and number (1)
mp3> .headers[0].magic._start | ., type, length?
0
"number"
0
mp3> .headers[0].magic._stop | ., type, length?
24
"number"
24
mp3> .headers[0].magic._len | ., type, length?
24
"number"
24
mp3> .headers[0].magic._name | ., type, length?
"magic"
"string"
5
mp3> .headers[0].magic._sym | ., type, length?
null
"null"
0
mp3> .headers[0].magic._description | ., type, length?
"valid"
"string"
5
mp3> .headers[0].magic._path | ., type, length?
[
"headers",
0,
"magic"
]
"array"
3
mp3> .headers[0].magic._bits | ., type, length?
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x0|49 44 33 |ID3 |.: raw bits 0x0-0x2.7 (3)
"binary"
24
mp3>
mp3> .headers[0].magic._bytes | ., type, length?
|00 01 02 03 04 05 06 07 08 09 0a 0b 0c 0d 0e 0f|0123456789abcdef|
0x0|49 44 33 |ID3 |.: raw bits 0x0-0x2.7 (3)
"binary"
3
mp3>
mp3> .headers[0].magic._error | ., type, length?
null
"null"
0
mp3> .headers[0].magic._unknown | ., type, length?
false
"boolean"
mp3> .headers[0].magic.a = 1
error: expected an object but got: string ("ID3")
mp3> .headers[0].magic[0] = 1
error: expected an array but got: string ("ID3")
mp3> .headers[0].magic.a |= empty
error: expected an object but got: string
mp3> .headers[0].magic[0] |= empty
error: expected an array but got: string ("ID3")
mp3> .headers[0].magic | setpath(["a"]; 1)
error: expected an object but got: string ("ID3")
mp3> .headers[0].magic | setpath([0]; 1)
error: expected an array but got: string ("ID3")
mp3> .headers[0].magic | delpaths([["a"]])
error: expected an object but got: string ("ID3")
mp3> .headers[0].magic | delpaths([[0]])
error: expected an array but got: string ("ID3")
mp3> ^D