mikecargal

mikecargal

Hands-on Rust: How is output_harness supposed to be used?

Title: Hands-On Rust (Chapter 11 : Test Harnesses)

I understand the point of the test harness, but the aside left me scratching my head as to how to use it. I looked at the downloaded source and it appears that this is an independent Rust project. Is that correct? If so, does that mean we would be replicating the source files across two different projects (I know, cut/paste…simple).

At any rate, either I’m a bit dense, or it could use a bit more explanation as to how to leverage the harness.

Most Liked

mikecargal

mikecargal

I did a cargo run in that directory. That “works”, but I’m not sure that was the intention. Had to play around a minute to see that I needed to hit “Enter” to continue etc.

mikecargal

mikecargal

Hmmm… noticed the Architect constructors in the out_harness directory.

Kind of looks like some of the things I’m tripping over are possibly due to inconsistencies in keeping the files synced up(???)

example:
drunkards.rs in the output_harness uses self.map.tiles.iter() for instance, while drunkards in the drunkard dir uses mb.map.tiles.iter() (since it doesn’t have a map in the DrunkardsWalkArchitect anymore.)

herbert

herbert

Author of Hands-on Rust

Thanks! I’ve filed the architect constructors under a separate issue in the book bug tracker, that one seems to be me forgetting to merge some code. I’ll make sure that’s in there.

I agree that the harness could use a better introduction. The intent is to show how useful it can be to write code against a separate tool that shows how algorithms work before moving the code into a useful build. I think I got part way there, but didn’t really manage to show the working as well as I should have. I’ll see if I can rework that a bit for a smoother reader experience.

(As an aside, I highly recommend making little test harness programs when you try something new. It really helps to distill what’s important and makes testing a lot easier)

Where Next?

Popular Pragmatic Bookshelf topics Top

abtin
page 20: … protoc command… I had to additionally run the following go get commands in order to be able to compile protobuf code using go...
New
jon
Some minor things in the paper edition that says “3 2020” on the title page verso, not mentioned in the book’s errata online: p. 186 But...
New
GilWright
Working through the steps (checking that the Info,plist matches exactly), run the demo game and what appears is grey but does not fill th...
New
sdmoralesma
Title: Web Development with Clojure, Third Edition - migrations/create not working: p159 When I execute the command: user=> (create-...
New
AleksandrKudashkin
On the page xv there is an instruction to run bin/setup from the main folder. I downloaded the source code today (12/03/21) and can’t see...
New
gilesdotcodes
In case this helps anyone, I’ve had issues setting up the rails source code. Here were the solutions: In Gemfile, change gem 'rails' t...
New
jgchristopher
“The ProductLive.Index template calls a helper function, live_component/3, that in turn calls on the modal component. ” Excerpt From: Br...
New
brunogirin
When trying to run tox in parallel as explained on page 151, I got the following error: tox: error: argument -p/–parallel: expected one...
New
New
dachristenson
@mfazio23 Android Studio will not accept anything I do when trying to use the Transformations class, as described on pp. 140-141. Googl...
New

Other popular topics Top

Devtalk
Reading something? Working on something? Planning something? Changing jobs even!? If you’re up for sharing, please let us know what you’...
1045 20596 392
New
New
brentjanderson
Bought the Moonlander mechanical keyboard. Cherry Brown MX switches. Arms and wrists have been hurting enough that it’s time I did someth...
New
dimitarvp
Small essay with thoughts on macOS vs. Linux: I know @Exadra37 is just waiting around the corner to scream at me “I TOLD YOU SO!!!” but I...
New
PragmaticBookshelf
Create efficient, elegant software tests in pytest, Python's most powerful testing framework. Brian Okken @brianokken Edited by Kat...
New
Help
I am trying to crate a game for the Nintendo switch, I wanted to use Java as I am comfortable with that programming language. Can you use...
New
husaindevelop
Inside our android webview app, we are trying to paste the copied content from another app eg (notes) using navigator.clipboard.readtext ...
New
AstonJ
If you’re getting errors like this: psql: error: connection to server on socket “/tmp/.s.PGSQL.5432” failed: No such file or directory ...
New
AnfaengerAlex
Hello, I’m a beginner in Android development and I’m facing an issue with my project setup. In my build.gradle.kts file, I have the foll...
New
NewsBot
Node.js v22.14.0 has been released. Link: Release 2025-02-11, Version 22.14.0 'Jod' (LTS), @aduh95 · nodejs/node · GitHub
New

Sub Categories: