Julius Gustavsson
👤 PersonAppearances Over Time
Podcast Appearances
It's a small circuit board with one USB cable, and it costs a few hundred euros a piece. And we make it ourselves, or at least Grappit, who are also hardware specialists, they make Yeah, they basically did it in just a few number of weeks we had the first samples. So we have these in some, or at least big enough quantity that every developer can have one at his or her desk.
And then we have a bunch of those in CI.
And then we have a bunch of those in CI.
And then we have a bunch of those in CI.
Which is based on Zool and Zool CI, where we then, so for every patch that we do, it then runs the whole test suite on the hardware.
Which is based on Zool and Zool CI, where we then, so for every patch that we do, it then runs the whole test suite on the hardware.
Which is based on Zool and Zool CI, where we then, so for every patch that we do, it then runs the whole test suite on the hardware.
Yeah, ZoolCI is quite interesting. So I would say its main selling point is that it can do speculative merging. And what that means is that you can have... Normally, especially if you're multiple projects working in a common code base, you could have one team or one developer doing a change and it's working fine and all the tests are going through.
Yeah, ZoolCI is quite interesting. So I would say its main selling point is that it can do speculative merging. And what that means is that you can have... Normally, especially if you're multiple projects working in a common code base, you could have one team or one developer doing a change and it's working fine and all the tests are going through.
Yeah, ZoolCI is quite interesting. So I would say its main selling point is that it can do speculative merging. And what that means is that you can have... Normally, especially if you're multiple projects working in a common code base, you could have one team or one developer doing a change and it's working fine and all the tests are going through.
At the same time, someone else is doing a different patch for something else. And that is also fine and going through. So both of them get merged, but it turns out that those two together don't actually work. So when both of them get merged, it breaks. Zool actually is able to speculatively check all the patches that are in flight and testing them together before they actually get merged.
At the same time, someone else is doing a different patch for something else. And that is also fine and going through. So both of them get merged, but it turns out that those two together don't actually work. So when both of them get merged, it breaks. Zool actually is able to speculatively check all the patches that are in flight and testing them together before they actually get merged.
At the same time, someone else is doing a different patch for something else. And that is also fine and going through. So both of them get merged, but it turns out that those two together don't actually work. So when both of them get merged, it breaks. Zool actually is able to speculatively check all the patches that are in flight and testing them together before they actually get merged.
So you have much higher likelihood of the master branch actually working.
So you have much higher likelihood of the master branch actually working.
So you have much higher likelihood of the master branch actually working.
Good question. So the actual test framework is Robot Framework, which is a Python-based behavior-driven development type of thing, similar to Cucumber or... Yeah, systems like that, where the tests are basically on a system level, like you essentially tell statements about how the system should behave, and then you connect those statements to actual code that is being run on the target.
Good question. So the actual test framework is Robot Framework, which is a Python-based behavior-driven development type of thing, similar to Cucumber or... Yeah, systems like that, where the tests are basically on a system level, like you essentially tell statements about how the system should behave, and then you connect those statements to actual code that is being run on the target.
Good question. So the actual test framework is Robot Framework, which is a Python-based behavior-driven development type of thing, similar to Cucumber or... Yeah, systems like that, where the tests are basically on a system level, like you essentially tell statements about how the system should behave, and then you connect those statements to actual code that is being run on the target.
And of course, every test suite then has quite extensive setup loop, basically, where it takes the device and flashes the correct version, resets it into the correct state, and sets up whatever preconditions that need to be in place before the test start. And then same when it's done, it will do some cleanup and But that's all like that's agnostic. So Zool doesn't care about that.