init
----

# Track a set of tokens with incrementing log positions and varying priorities.
track
pri=normal-pri tokens=1B log-position=4/20
pri=normal-pri tokens=1B log-position=4/21
pri=normal-pri tokens=1B log-position=4/22
pri=normal-pri tokens=1B log-position=4/23
pri=low-pri    tokens=1B log-position=4/24
pri=normal-pri tokens=1B log-position=4/25
pri=low-pri    tokens=1B log-position=4/26
pri=normal-pri tokens=1B log-position=4/27
pri=low-pri    tokens=1B log-position=4/28
pri=normal-pri tokens=1B log-position=4/29
----

# Iterate through them. We should find three low-pri tokens being tracked, and
# six normal-pri ones.
iter
----
pri=low-pri
  tokens=1B log-position=4/24
  tokens=1B log-position=4/26
  tokens=1B log-position=4/28
pri=normal-pri
  tokens=1B log-position=4/20
  tokens=1B log-position=4/21
  tokens=1B log-position=4/22
  tokens=1B log-position=4/23
  tokens=1B log-position=4/25
  tokens=1B log-position=4/27
  tokens=1B log-position=4/29

# The Inspect() state should surface the same thing.
inspect
----
pri=low-pri tokens=1B log-position=4/24
pri=low-pri tokens=1B log-position=4/26
pri=low-pri tokens=1B log-position=4/28
pri=normal-pri tokens=1B log-position=4/20
pri=normal-pri tokens=1B log-position=4/21
pri=normal-pri tokens=1B log-position=4/22
pri=normal-pri tokens=1B log-position=4/23
pri=normal-pri tokens=1B log-position=4/25
pri=normal-pri tokens=1B log-position=4/27
pri=normal-pri tokens=1B log-position=4/29

# Untrack a subset of normal-pri tokens, up to 4/23. This should get rid of four
# tracked tokens.
untrack pri=normal-pri up-to-log-position=4/23
----
pri=normal-pri
  tokens=1B log-position=4/20
  tokens=1B log-position=4/21
  tokens=1B log-position=4/22
  tokens=1B log-position=4/23
total=4B

iter
----
pri=low-pri
  tokens=1B log-position=4/24
  tokens=1B log-position=4/26
  tokens=1B log-position=4/28
pri=normal-pri
  tokens=1B log-position=4/25
  tokens=1B log-position=4/27
  tokens=1B log-position=4/29

# Untracking them again is a no-op.
untrack pri=normal-pri up-to-log-position=4/23
----

iter
----
pri=low-pri
  tokens=1B log-position=4/24
  tokens=1B log-position=4/26
  tokens=1B log-position=4/28
pri=normal-pri
  tokens=1B log-position=4/25
  tokens=1B log-position=4/27
  tokens=1B log-position=4/29

# Do the same for the low-pri tokens. Untracking at higher log positions (used
# for normal-pri) requests don't affect tokens other than low-pri ones.
untrack pri=low-pri up-to-log-position=4/29
----
pri=low-pri
  tokens=1B log-position=4/24
  tokens=1B log-position=4/26
  tokens=1B log-position=4/28
total=3B

iter
----
pri=normal-pri
  tokens=1B log-position=4/25
  tokens=1B log-position=4/27
  tokens=1B log-position=4/29

# The Inspect() state should surface the same thing.
inspect
----
pri=normal-pri tokens=1B log-position=4/25
pri=normal-pri tokens=1B log-position=4/27
pri=normal-pri tokens=1B log-position=4/29

# vim:ft=sh
