
test_use_count_fsm()
DFOO DEBUG foo(a){IN_USE}: Allocated
DFOO DEBUG foo(b){IN_USE}: Allocated
DFOO DEBUG foo(c){IN_USE}: Allocated

all use counts:
a: 0 (-)
b: 0 (-)
c: 0 (-)
3 foos

A few gets and puts, logging source file information
DFOO NOTICE foo(a){IN_USE}: a +1 barring: now used by 1 (barring) (use_count_test.c:219)
DFOO NOTICE foo(b){IN_USE}: b +1 barring: now used by 1 (barring) (use_count_test.c:221)
DFOO NOTICE foo(b){IN_USE}: b +1 fighting: now used by 2 (barring,fighting) (use_count_test.c:222)

all use counts:
a: 1 (barring)
b: 2 (barring,fighting)
c: 0 (-)
3 foos

Attempt to get more than one on limited 'barring' user:
DFOO ERROR foo(b){IN_USE}: Attempt to get more than one barring (use_count_test.c:227)
osmo_use_count_get_put(b, barring, 1) returned error: -34 Numerical result out of range

all use counts:
a: 1 (barring)
b: 2 (barring,fighting)
c: 0 (-)
3 foos

Put away one user of b
DFOO NOTICE foo(b){IN_USE}: b -1 barring: now used by 1 (fighting) (use_count_test.c:231)

all use counts:
a: 1 (barring)
b: 1 (fighting)
c: 0 (-)
3 foos

(no longer log source file information)
Test null use token
DFOO NOTICE foo(a){IN_USE}: a +1 NULL: now used by 2 (barring,NULL)

all use counts:
a: 2 (barring,NULL)
b: 1 (fighting)
c: 0 (-)
3 foos

DFOO NOTICE foo(a){IN_USE}: a -1 NULL: now used by 1 (barring)

all use counts:
a: 1 (barring)
b: 1 (fighting)
c: 0 (-)
3 foos

Put away last user of a, goes to RELEASING state and waits for a hypothetic async release process
DFOO NOTICE foo(a){IN_USE}: a -1 barring: now used by 0 (-)
DFOO DEBUG foo(a){IN_USE}: Received Event FOO_EV_UNUSED
DFOO DEBUG foo(a){IN_USE}: state_chg to IN_RELEASE
DFOO NOTICE foo(a){IN_RELEASE}: a +1 releasing: now used by 1 (releasing)

all use counts:
a: 1 (releasing)
b: 1 (fighting)
c: 0 (-)
3 foos

Async releasing of a is done, will dealloc
DFOO NOTICE foo(a){IN_RELEASE}: a -1 releasing: now used by 0 (-)
DFOO DEBUG foo(a){IN_RELEASE}: Received Event FOO_EV_UNUSED
DFOO DEBUG foo(a){IN_RELEASE}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
DFOO DEBUG foo(a){IN_RELEASE}: Freeing instance
DFOO DEBUG foo(a){IN_RELEASE}: Deallocated

all use counts:
b: 1 (fighting)
c: 0 (-)
2 foos

Use b multiple times
DFOO NOTICE foo(b){IN_USE}: b +1 kungfoo: now used by 2 (fighting,kungfoo)
DFOO NOTICE foo(b){IN_USE}: b +1 kungfoo: now used by 3 (fighting,2*kungfoo)
DFOO NOTICE foo(b){IN_USE}: b -1 kungfoo: now used by 2 (fighting,kungfoo)
DFOO NOTICE foo(b){IN_USE}: b +1 kungfoo: now used by 3 (fighting,2*kungfoo)
DFOO NOTICE foo(b){IN_USE}: b +1 kungfoo: now used by 4 (fighting,3*kungfoo)

all use counts:
b: 4 (fighting,3*kungfoo)
c: 0 (-)
2 foos

Test range: set kung-fu to INT32_MAX-1, then get three more; total count gets max-clamped to INT32_MAX
DFOO NOTICE foo(b){IN_USE}: b +2147483643 kungfoo: now used by 2147483647 (fighting,2147483646*kungfoo)

all use counts:
b: 2147483647 (fighting,2147483646*kungfoo)
c: 0 (-)
2 foos

DFOO NOTICE foo(b){IN_USE}: b +1 kungfoo: now used by 2147483647 (fighting,2147483647*kungfoo)
osmo_use_count_get_put(b, kungfoo, 1) returned error: -34 Numerical result out of range
osmo_use_count_get_put(b, kungfoo, 1) returned error: -34 Numerical result out of range
DFOO NOTICE foo(b){IN_USE}: b +2 fighting: now used by 2147483647 (3*fighting,2147483647*kungfoo)
DFOO NOTICE foo(b){IN_USE}: b -3 kungfoo: now used by 2147483647 (3*fighting,2147483644*kungfoo)
DFOO NOTICE foo(b){IN_USE}: b -1 kungfoo: now used by 2147483646 (3*fighting,2147483643*kungfoo)
DFOO NOTICE foo(b){IN_USE}: b -1 kungfoo: now used by 2147483645 (3*fighting,2147483642*kungfoo)
DFOO NOTICE foo(b){IN_USE}: b +1 fighting: now used by 2147483646 (4*fighting,2147483642*kungfoo)
DFOO NOTICE foo(b){IN_USE}: b +1 fighting: now used by 2147483647 (5*fighting,2147483642*kungfoo)
DFOO NOTICE foo(b){IN_USE}: b +1 fighting: now used by 2147483647 (6*fighting,2147483642*kungfoo)

all use counts:
b: 2147483647 (6*fighting,2147483642*kungfoo)
c: 0 (-)
2 foos

Release all uses of b
DFOO NOTICE foo(b){IN_USE}: b -2147483642 kungfoo: now used by 6 (6*fighting)
DFOO NOTICE foo(b){IN_USE}: b -6 fighting: now used by 0 (-)
DFOO DEBUG foo(b){IN_USE}: Received Event FOO_EV_UNUSED
DFOO DEBUG foo(b){IN_USE}: state_chg to IN_RELEASE
DFOO NOTICE foo(b){IN_RELEASE}: b +1 releasing: now used by 1 (releasing)
Signal async release as done
DFOO NOTICE foo(b){IN_RELEASE}: b -1 releasing: now used by 0 (-)
DFOO DEBUG foo(b){IN_RELEASE}: Received Event FOO_EV_UNUSED
DFOO DEBUG foo(b){IN_RELEASE}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
DFOO DEBUG foo(b){IN_RELEASE}: Freeing instance
DFOO DEBUG foo(b){IN_RELEASE}: Deallocated

all use counts:
c: 0 (-)
1 foos

Release something not gotten before: a get/put bug goes into negative count
DFOO NOTICE foo(c){IN_USE}: c -1 kungfoo: now used by -1 (-1*kungfoo)
DFOO ERROR foo(c){IN_USE}: Negative use count on kungfoo: -1 (-1*kungfoo)

all use counts:
c: -1 (-1*kungfoo)
1 foos

More negative
DFOO NOTICE foo(c){IN_USE}: c -1 kungfoo: now used by -2 (-2*kungfoo)
DFOO ERROR foo(c){IN_USE}: Negative use count on kungfoo: -2 (-2*kungfoo)
DFOO NOTICE foo(c){IN_USE}: c -1 kungfoo: now used by -3 (-3*kungfoo)
DFOO ERROR foo(c){IN_USE}: Negative use count on kungfoo: -3 (-3*kungfoo)

all use counts:
c: -3 (-3*kungfoo)
1 foos

Also release c
DFOO NOTICE foo(c){IN_USE}: c +4 kungfoo: now used by 1 (kungfoo)
DFOO NOTICE foo(c){IN_USE}: c -1 kungfoo: now used by 0 (-)
DFOO DEBUG foo(c){IN_USE}: Received Event FOO_EV_UNUSED
DFOO DEBUG foo(c){IN_USE}: state_chg to IN_RELEASE
DFOO NOTICE foo(c){IN_RELEASE}: c +1 releasing: now used by 1 (releasing)
Signal async release as done
DFOO NOTICE foo(c){IN_RELEASE}: c -1 releasing: now used by 0 (-)
DFOO DEBUG foo(c){IN_RELEASE}: Received Event FOO_EV_UNUSED
DFOO DEBUG foo(c){IN_RELEASE}: Terminating (cause = OSMO_FSM_TERM_REGULAR)
DFOO DEBUG foo(c){IN_RELEASE}: Freeing instance
DFOO DEBUG foo(c){IN_RELEASE}: Deallocated

all use counts:
0 foos

