Commits

Anonymous committed d78437b

added downloads and post for testing chicken code

  • Participants
  • Parent commits e48df57

Comments (0)

Files changed (13)

File _layouts/post.html

     </div>
     <aside class="span3">
       <h4>Published</h4>
-     
+
       <time datetime="{{ page.datestring chema }}" class="date"><span>{{ page.datestring }}</span></time>
 
       {% if page.code %}
         <h4>Code</h4>
-        <a href="{{page.code.url}}">{{page.code.caption}}</a>
+	{% for code in page.code %}
+          <a href="{{code.url}}">{{code.caption}}</a><br>
+	{% endfor %}
       {% endif %}
 
       {% unless page.tags == empty %}

File _posts/2010-12-26-nomads.md

 layout: post
 tagline: Database migrations for CHICKEN
 code:
-  url: http://bitbucket.org/certainty/nomads
-  caption: nomads
+  - url: http://bitbucket.org/certainty/nomads
+    caption: nomads
 tags : [scheme, chicken, nomads]
 datestring: 2010-12-26
 ---

File _posts/2013-06-19-i_did_missbehave.md

 tagline: Lessons learned from a failed project
 datestring: 2013-06-19
 code:
-  url: http://bitbucket.org/certainty/missbehave
-  caption: missbehave
+  - url: http://bitbucket.org/certainty/missbehave
+    caption: missbehave
 tags: [scheme,missbehave,chicken,tdd,bdd,testing]
 ---
 

File _posts/2014-03-14-the_truth_about_veritas.md

----
-layout: post
-title: The truth about veritas
-tagline: Introduction to a new testing facility
-datestring: 2014-03-04
-code:
-  url: http://bitbucket.org/certainty/veritas
-  caption: veritas
-tags: veritas testing scheme
----

File _posts/2014-04-05-tesing_your_chicken_code.md

+---
+layout: post
+title: Testing your CHICKEN code
+tagline: using the test egg in anger
+datestring: 2014-04-05
+code:
+   - url: http://bitbucket.org/certainty/chicken-test-mode
+     caption: chicken-test-mode
+   - url: http://wiki.call-cc.or/eggref/test
+     caption: test
+tags: [scheme,test,chicken,testing]
+---

File downloads/cli-fu.pdf

Binary file added.

File downloads/p677-cheney.pdf

Binary file added.

File downloads/psd-1.2.1.tar.gz

Binary file added.

File downloads/psd-1.2.tar.gz

Binary file added.

File drafts/2014-03-14-the_truth_about_veritas.md

+---
+layout: post
+title: The truth about veritas
+tagline: Introduction to a new testing facility
+datestring: 2014-03-04
+code:
+  url: http://bitbucket.org/certainty/veritas
+  caption: veritas
+tags: [veritas,testing,scheme]
+---
+
+# Introduction
+
+It's been a while since I wrote about my failure with  [missbehave](http://lisp-unleashed.de/2013/06/19/i_did_missbehave). I mentioned that I was working on a successor that aims to fix the all
+the things that have been wrong with missbehave.
+
+I've had a little bit of time to work on that new library and it's getting shape, so i figured that it might be a good idea to tell you a little bit about it.
+
+## Why yet another testing library?
+
+Let me get one thing straight out of the way. If you want a battle-tested and extremely well designed, well thoughtout and configurable testing library that has minimal dependencies, please go with Alex Shinn's [test](http://wiki.call-cc.org/eggref/4/test). It's awesome, really! I drew much inspiration from it and I keep being impressed about its elegance.
+
+Why did I start over and continued my journey to write my own testing library. The main reasons
+are that I learn alot from it, that it gives me the opportunity to work with my favorite scheme
+and lastly because I wanted to try other approaches to testing that eventually address a few of
+the very few shortcomings of the [test egg](http://wiki.call-cc.org/eggref/4/test).
+
+## Veritas walkthrough
+
+The following introduces you to veritas and outlines its basic functionality along
+with a description about some internals.
+
+### Decoupling
+
+One of the problems with missbehave was that it was basically a monolithic library that conflated
+many concerns. In veritas I had to address this. I wanted to have a very basic and tiny core that can be used on its own to have minimal dependencies, but also I wanted the ability to build
+more comfort around that core. I identified and isolated a few concerns that a testing library has to address.
+
+#### The core
+
+The core is basically a driver that knows how to run a verification and notify events. It does
+a little bit more to take care of errors that accuring during the verification process but
+apart from that it really just is the instrumentation unit that wires together the parts.
+
+#### The basic syntax
+
+The core also provides the basic syntactic constructs that are used to describe verifications.
+
+##### Verify
+
+This is the form that you use to describe your verifications. It allows you to apply a given
+verifier to a subject. It comes in different variations:
+
+~~~ clojure
+ (verify subject)
+~~~
+
+This uses the builtin boolean verifier that succeeds if the subject passed to it evaluates to
+true and fails otherwise.
+
+~~~ clojure
+ (verify subject (is expected))
+~~~
+
+This form applies the is-verifier to the subject. It will succeed if it matches the expected
+value equals the subject. This is just an example of the basic pattern that involves a verifier.
+
+~~~ clojure
+ (verify subject (is expectey) "This is my description")
+~~~
+
+This form is the same as the form before but also adds a description to that verification.
+This really just sets the description meta-data for that verification.
+Reporters my chose to take it and use it to do some nice reporting.
+
+##### Falsify
+
+This is just verify with negated logic. It will succeed when a corresponding verify would have
+failed. It's there to be more explicit about negated verifictions which might become cumbersome
+to read. It supports all the variations of the verify form.
+
+
+##### Group
+
+If you want to group verifications you can do this with the group macro.
+
+~~~ clojure
+ (group "This is my group of tests"
+   (verify (length "string")  (is > 0))
+   (verify (reverse "string") (is "gnirts")))
+~~~
+
+This will add the group name to the meta-data of each verification that is within that group.
+
+##### Describe
+If you don't want to append a description string to a verification you can wrap it into a
+describe.
+
+~~~ clojure
+ (describe "This is my verification"
+   (verify subject))
+~~~
+
+This will add the description to the meta-data of each verification it contains.
+
+
+##### Meta
+
+Each verification can have meta-data attached to it. It's used by the core to ammend
+verifications with for example descriptions. However it can und shall be used by the client
+also to have a means to attach data to tests. Eventlisteners have access to that meta-data
+and can use it to do all sorts of interesting things.
+
+~~~ clojure
+ (meta (bug: "#1234" focus: #t)
+   (verify subject))
+~~~
+
+As you see meta data is a key-value list that works much like an assocition list but has
+fewer parens. It uses keywords as keys. The value can be an abritary scheme value.
+Meta-data can be nested and the each level of nesting will inherit the meta-data from
+outer levels. Also you can overwrite meta-data from outer levels in inner levels.
+It just works as you'd expect it to work.
+
+~~~ clojure
+ (meta (bugs: #t slow: #t)
+   (meta (id: "#1234" slow: #f fast: #t)
+     ;; slow is temporarily set to #f
+     ;; also this verification inherits the bugs: meta-data
+     (verify subject))
+
+   ;; slow is back to #t
+   (verify subject))
+~~~
+
+
+
+#### Notifications
+
+Veritas core doesn't need to know how to do the reporting. That's totally up to
+another part that may or may not declare interest in the verification events. The following events are notified:
+
+* Start of a verification
+* End of a verification
+* A verification has succeeded
+* A verification has failed
+* A verification is pending
+* Start of a group
+* End of a group
+
+You can add your own listener to each of these events. Also every event can of course
+have multiple listeners which are all invoked.
+
+
+### Testing with random input
+
+### Reporters
+
+#### Embracing the repl
+
+#### Pretty output at the console
+
+#### Other reporters
+
+### Verifiers
+
+### Metadata
+
+## What's next?

File drafts/ideas.org

+* TEST egg
+** continuous testing with sentry? and test-filters?
+   - have tests that have groups like
+     (test-group "filex") and a filex.scm then when filex.scm changes
+     run filex with filter.
+   - test procedure under point
+     (test-group "procedure-name") run tests from within emacs that match procedure-name
+   - add appliers that report back to emacs when in testing mode

File psd-1.2.1.tar.gz

+downloads/psd-1.2.1.tar.gz

File psd-1.2.tar.gz

+downloads/psd-1.2.tar.gz