R&Dチームの齋藤です。最近モニターアームを(個人的に)買ってその便利さに心底満悦しています。 さて、前回はRust言語そのものを紹介しましたが、 今回はRustにおけるユニットテストの書き方とカバレッジの測り方を、 実際に医療機器ソフトウェアの開発の中で体験した内容を使って紹介します。 ユニットテスト テストの書き方 テストを実行する その他 カバレッジを測る カバレッジツールの比較 Tarpaulin cargo-cov cargo-kcov cargo-kcovのインストール カバレッジを計測する コード片を無視する ファイルを無視する カバレッジ結果を標準出力に出す Dockerの中で実行する CIで勝手にカバレッジ さいごに ライセンス表記 ユニットテスト 某宇宙の乗り物が発進するときに設備の故障が無いか、進路上に障害物が無いかをチェックして、 そのあと「システムオールグリーン」
Many people have had the idea that there should be a way to visualize lifetimes in Rust. Indeed, the Rust Book used to include ASCII diagrams of lifetimes in some code examples. When fighting the borrow checker, it would be great if the IDE or editor could automatically provide a visualization of the lifetimes in your code. Perhaps the most beautiful visualization I have seen is in the post “Graph
はじめに RustでLLVM IRを出力するcrateとしてLLVM C APIのbindingであるllvm-sys.rsがあります。しかしllvm-sys.rsは非常に薄く、不足する機能は自力で提供してやらなければなりません。またドキュメントやテストもほとんどなく、初見の場合は既存の実装を参照しながら手探りでやっていく必要が出てきます。 同様にLLVM IRを出力するcrateとしてinkwellがあります。inkwellは便利なllvm-sys.rsのラッパーです。llvm-sys.rsで不足していた機能やドキュメントなどが大幅に追加されています。本記事ではそんな素敵なinkwellを紹介したいと思います。 inkwellの良いところ 他にもたくさんあるとは思いますが、個人的に良いなと思ったのは以下です。主に上2つについて簡単に説明できればと思います。私はllvm-sys.rsを用い
この記事は Rust と非同期 IO の歴史 の草稿兼参考資料集です 最近のサーバサイド Rust の話題 iron, gotham が開発停止 tokio-core が tokio になった RFCS に async-await が入った futures 0.2 が yank されそう 疑問 2018 年にもなって非同期 IO で疲弊している Rust は 2006 年に開発が始まった node.js も go も 2009 年には存在していた 今まで Rust は何をやっていたのか? 今まで Rust は何をやっていたのか? 2018 2018-06-23 - Rust 2018: an early preview - https://internals.rust-lang.org/t/rust-2018-an-early-preview/7776/14 2018-06-21 - Ru
はじめに システムコールのptraceを使うと他プロセスの呼ぶシステムコールを覗き見ることが出来ます。 これを使って実行中の他プロセスの標準出力や標準エラー出力を読み取るライブラリを作ってみました。 使い方 std::io::Readを実装しているので 通常のファイルIOやネットワークIOと同じように扱えます。 extern crate nix; extern crate proc_reader; use nix::unistd::Pid; use proc_reader::ProcReader; use std::process::Command; use std::io::Read; use std::time::Duration; use std::thread; fn main() { // 読み取り先のプロセスを生成 let mut child = Command::new("s
Docker for Mac内のRustでmacOS向けのプログラムを書けるようにした。 Rustのクロスコンパイルの設定ができたので、Docker for MacでmacOS用のプログラムが書けるようになってきた— mzp (@mzp) 2017年5月2日 ⭐️要約 以下のDockerfireでクロスコンパイルのできるイメージを作成できる。 FROM multiarch/crossbuild # reinstall osx cross compiler to link with SDK 10.7 ENV DARWIN_OSX_VERSION_MIN="10.7" RUN rm -rf /usr/osxcross \ && mkdir -p "/tmp/osxcross" \ && cd "/tmp/osxcross" \ && curl -sLo osxcross.tar.gz "htt
プログラミング言語「Rust」を使い、ゲーム機「GAMEBOY ADVANCE」(GBA)上でHello, World!を表示するまでを解説した書籍です。 RustでBere Metalなプログラムを作りたい方やGBA上で動くプログラムに興味ある方に向けて、RustのインストールからGBA上で動くプログラムの書き方まで解説しました。 本書をきっかけに、RustやBere Metalなプログラム作りに興味を持っていただけたら幸いです。 第1章 : 開発環境を作ろう 第2章 : プログラミング言語 Rust の簡単な紹介 第3章 : GBA のアーキテクチャ 第4章 : 最初のプログラムを書こう 第5章 : ビルドシステムを導入しよう 第6章 : 図形を描画しよう 第7章 : 文字を表示しよう 本書は技術書典2(2017年4月9日)にて頒布した同名書籍の電子書籍版(PDF)版とな
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く