class Mdk < Formula desc "GNU MIX development kit" homepage "https://www.gnu.org/software/mdk/mdk.html" url "https://ftp.gnu.org/gnu/mdk/v1.2.9/mdk-1.2.9.tar.gz" mirror "https://ftpmirror.gnu.org/mdk/v1.2.9/mdk-1.2.9.tar.gz" sha256 "6c265ddd7436925208513b155e7955e5a88c158cddda72c32714ccf5f3e74430" revision 4 bottle do sha256 "92c84c52d81c15c8df91fc27eee924bbf92bcf3a72f6c602843a9109cd76ab6e" => :mojave sha256 "2182d170320ab65c99e6ae1cadb466226102aa0efa061688f3ea91cac4a60765" => :high_sierra sha256 "a3be192cba5f0eee43813911d6204235358a478c64a4f3c4bdd8f083a2abba82" => :sierra sha256 "89057b07b4bd94ba0b18d0f3c8e22c4b27bf1ba70ab1d7c2f34c0bbb656ecb9d" => :el_capitan end depends_on "intltool" => :build depends_on "pkg-config" => :build depends_on "flex" depends_on "glib" depends_on "gtk+" depends_on "guile" depends_on "libglade" depends_on "readline" def install system "./configure", "--disable-debug", "--disable-dependency-tracking", "--disable-silent-rules", "--prefix=#{prefix}" system "make", "install" end test do ENV["LANG"] = "en_US.UTF-8" (testpath/"hello.mixal").write <<~EOS * (1) * hello.mixal: say "hello world" in MIXAL (2) * (3) * label ins operand comment (4) TERM EQU 19 the MIX console device number (5) ORIG 1000 start address (6) START OUT MSG(TERM) output data at address MSG (7) HLT halt execution (8) MSG ALF "MIXAL" (9) ALF " HELL" (10) ALF "O WOR" (11) ALF "LD" (12) END START end of the program (13) EOS system "#{bin}/mixasm", "hello" output = `#{bin}/mixvm -r hello` expected = <<~EOS Program loaded. Start address: 1000 Running ... MIXAL HELLO WORLDXXX ... done EOS expected = expected.gsub("XXX", " " *53) assert_equal expected, output end end