mirror of
https://git.savannah.gnu.org/git/guix.git
synced 2026-04-06 21:20:33 +02:00
database: Validate #:nar-size and #:time when registering store items.
* guix/store/database.scm (assert-integer): New procedure.
(update-or-insert): Use it to validate NAR-SIZE and TIME.
* tests/store-database.scm ("sqlite-register with incorrect size"): New
test.
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2017, 2018, 2020 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2017, 2018, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
;;;
|
||||
@@ -123,4 +123,21 @@
|
||||
(pk 'welcome-exception! args)
|
||||
#t)))))
|
||||
|
||||
(test-equal "sqlite-register with incorrect size"
|
||||
'out-of-range
|
||||
(call-with-temporary-output-file
|
||||
(lambda (db-file port)
|
||||
(delete-file db-file)
|
||||
(catch #t
|
||||
(lambda ()
|
||||
(with-database db-file db
|
||||
(sqlite-register db #:path "/gnu/foo"
|
||||
#:references '("/gnu/bar")
|
||||
#:deriver "/gnu/foo.drv"
|
||||
#:hash (string-append "sha256:" (make-string 64 #\e))
|
||||
#:nar-size -1234))
|
||||
#f)
|
||||
(lambda (key . _)
|
||||
key)))))
|
||||
|
||||
(test-end "store-database")
|
||||
|
||||
Reference in New Issue
Block a user