From 516afc8ed664aa82fd0213b20431874538c0e3d6 Mon Sep 17 00:00:00 2001 From: Joe Thornber Date: Wed, 30 Aug 2017 13:35:44 +0100 Subject: [PATCH] [functional-tests] era-xml --- functional-tests/era-xml.scm | 43 ++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 functional-tests/era-xml.scm diff --git a/functional-tests/era-xml.scm b/functional-tests/era-xml.scm new file mode 100644 index 0000000..27ed010 --- /dev/null +++ b/functional-tests/era-xml.scm @@ -0,0 +1,43 @@ +(library + (era-xml) + (export generate-xml) + (import (rnrs) + (list-utils) + (fmt fmt) + (generators) + (xml) + (srfi s27 random-bits) + (only (srfi s1 lists) iota)) + + (define (rand-percent pc) + (if (< (random-integer 100) pc) + "true" + "false")) + + (define (generate-writeset era nr-bits) + (tag 'writeset `((era . ,era) + (nr-bits . , nr-bits)) + (vcat + (map (lambda (bit) + (tag 'bit `((block . ,bit) + (value . ,(rand-percent 10))))) + (iota nr-bits))))) + + (define (generate-xml block-size nr-blocks current-era nr-writesets) + (tag 'superblock `((uuid . "") + (block-size . ,block-size) + (nr-blocks . ,nr-blocks) + (current-era . ,current-era)) + (cat + (vcat + (map (lambda (ws) + (generate-writeset (- current-era ws) nr-blocks)) + (iota nr-writesets))) + nl + (tag 'era-array '() + (vcat + (map (lambda (n) + (tag 'era `((block . ,n) + (era . ,(random-integer current-era))))) + (iota nr-blocks))))))) + )