Parallel Tests
Take a look at the parallel testing of the application.
We'll cover the following...
We'll cover the following...
As with the last chapter, the parallel version of our system can be adapted by just declaring a new property and reusing the same model, to see if any glaring concurrency issues can be found.
Let’s take a look at the property and then see it in action in the code widgets below.
Code
The prop_parallel
property in the following code has been highlighted for us.
-module(book_shim). -compile(export_all). add_book_existing(ISBN, Title, Author, Owned, Avail) -> bookstore_db:add_book(ISBN, Title, Author, Owned, Avail). add_book_new(ISBN, Title, Author, Owned, Avail) -> bookstore_db:add_book(ISBN, Title, Author, Owned, Avail). add_copy_existing(ISBN) -> bookstore_db:add_copy(ISBN). add_copy_new(ISBN) -> bookstore_db:add_copy(ISBN). borrow_copy_avail(ISBN) -> bookstore_db:borrow_copy(ISBN). borrow_copy_unavail(ISBN) -> bookstore_db:borrow_copy(ISBN). borrow_copy_unknown(ISBN) -> bookstore_db:borrow_copy(ISBN). return_copy_full(ISBN) -> bookstore_db:return_copy(ISBN). return_copy_existing(ISBN) -> bookstore_db:return_copy(ISBN). return_copy_unknown(ISBN) -> bookstore_db:return_copy(ISBN). find_book_by_isbn_exists(ISBN) -> bookstore_db:find_book_by_isbn(ISBN). find_book_by_isbn_unknown(ISBN) -> bookstore_db:find_book_by_isbn(ISBN). find_book_by_author_matching(Author) -> bookstore_db:find_book_by_author(Author). find_book_by_author_unknown(Author) -> bookstore_db:find_book_by_author(Author). find_book_by_title_matching(Title) -> bookstore_db:find_book_by_title(Title). find_book_by_title_unknown(Title) -> bookstore_db:find_book_by_title(Title).
Parallel testing
Once again, few changes are required aside from the ...