56 lines
1.8 KiB
Scheme
56 lines
1.8 KiB
Scheme
|
|
(test-begin "gi-repository")
|
|
|
|
(define repository (gi-repository-new))
|
|
(display repository)
|
|
(newline)
|
|
|
|
(define err (make-c-null))
|
|
|
|
(call-with-address-of
|
|
err
|
|
(lambda (err-address)
|
|
(gi-repository-require repository
|
|
(string->c-utf8 "GLib")
|
|
(string->c-utf8 "2.0")
|
|
0
|
|
err-address)
|
|
(when (not (c-null? err))
|
|
(error "gi-repository-require failed"))))
|
|
|
|
|
|
(define base-info
|
|
(gi-repository-find-by-name repository
|
|
(string->c-utf8 "GLib")
|
|
(string->c-utf8 "assertion_message")))
|
|
|
|
(when (c-null? base-info) (error "base-info failed"))
|
|
|
|
(define args (make-c-bytevector (* (c-type-size 'pointer) 5)))
|
|
|
|
(c-bytevector-pointer-set! args 0 (string->c-utf8 "domain"))
|
|
(c-bytevector-pointer-set! args (c-type-size 'pointer) (string->c-utf8 "(retropikzel gi-repository)"))
|
|
(c-bytevector-u8-set! args (* (c-type-size 'pointer) 2) 42)
|
|
(c-bytevector-pointer-set! args (* (c-type-size 'pointer) 3) (string->c-utf8 "test.scm"))
|
|
(c-bytevector-pointer-set! args (* (c-type-size 'pointer) 4) (string->c-utf8 "foobar"))
|
|
|
|
(define return-value (make-c-bytevector (c-type-size 'int)))
|
|
(define invoke-err (make-c-null))
|
|
(call-with-address-of
|
|
invoke-err
|
|
(lambda (invoke-err-address)
|
|
(let ((return-code
|
|
(gi-function-info-invoke base-info
|
|
args
|
|
5
|
|
(make-c-null)
|
|
0
|
|
(make-c-null)
|
|
invoke-err-address)))
|
|
(display "HERE: ")
|
|
(write return-code)
|
|
(newline)
|
|
)))
|
|
|
|
(test-end "gi-repository")
|