Mercurial > core / lisp/lib/q/tests/fuzz.lisp
changeset 582: |
568c39371122 |
parent: |
d3e2829521a3
|
author: |
Richard Westhaver <ellis@rwest.io> |
date: |
Wed, 07 Aug 2024 21:09:43 -0400 |
permissions: |
-rw-r--r-- |
description: |
sql updates, fuzzz |
1 ;;; fuzz.lisp --- Q Fuzzers 6 (in-package :q/tests/fuzz) 8 (defvar *fuzz-value-max-size* 32) 10 ;; > schema, state, generator 11 (defclass query-fuzzer (fuzzer data-source) ()) 13 (defun generate-sql-type (state &optional (type :string)) 15 (:integer (make-instance 'sql-number :value (random most-positive-fixnum))) 16 (:float (make-instance 'sql-number :value (random most-positive-single-float))) 17 (:double (make-instance 'sql-number :value (random most-positive-double-float))) 18 (:string (make-instance 'sql-string :value (rt:random-chars (random *fuzz-value-max-size* state)))))) 20 (defun generate-dql-type (state &optional (type :string))) 22 (defclass sql-fuzzer (query-fuzzer) () 24 :generator #'generate-sql-type)) 26 (defmethod fuzz ((self sql-fuzzer) &key type) 27 (funcall (fuzz-generator self) (fuzz-state self) type)) 29 (defclass dql-fuzzer (query-fuzzer) () 31 :generator #'generate-dql-type))