mnm-hammer

command module
v0.9.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jan 3, 2021 License: MPL-2.0 Imports: 26 Imported by: 0

README

mnm is not mail

The mnm project is building a legitimate replacement for email: a client (see below), a server, and a simple protocol between them.

Learn more at mnmnotmail.org.

Download the mnm client app

Status

03 January 2021 - v0.9 is released. It fixes a panic and a few flaws, but is otherwise identical to v0.8.

15 November 2020 - v0.8 is released for Windows 7+ & MacOS & Linux. Its UI has been tested on Chrome & Firefox.
New: Markdown reference panel, "Todo" tag on new threads, menu of filled-form tables, and dozens of other enhancements and fixes.

20 April 2020 - v0.7 is released for Windows 7+ & MacOS & Linux. It has been tested with Chrome & Firefox.
New: slide deck layouts, replication to multiple PCs, simplified startup.

20 October 2019 - v0.6 is released for Windows 7+ & MacOS & Linux. It has been tested with Chrome & Firefox.
New: search, message tags, file viewer, UI colors, logo, and more. Fixes many UI flaws.

29 May 2019 - v0.5 is released. It fixes a panic on Windows, but is otherwise identical to v0.4.

25 May 2019 - v0.4 is released. It has been tested on Windows 7 & MacOS & Linux, with Firefox.
New: Windows support. Fixes a crash-recovery failure, and a TMTP handling error.

13 May 2019 - v0.3 is released. It has been tested on Linux & MacOS, with Firefox.
New: tooltips on menu icons. Fixes a panic, and a handful of UI flaws.

07 May 2019 - v0.2 is released. It has been tested on Linux & MacOS, with Firefox.
New: a tour with cartoons covering essential features.

19 April 2019 - v0.1 is released. It has been tested on Linux & MacOS, with Firefox.

Version Numbering

Production releases: 1+ . 0 . 0+

Preview releases: pp . 1+ . pp (first & last from prior production release)

The second number is only used for previews. Most (hopefully all) preview features & changes appear in the following production release.

Build & Package

Requires Go 1.13.3+

a) go get github.com/networkimprov/mnm-hammer
b) cd $GOPATH/src/github.com/networkimprov/mnm-hammer # project directory can be moved out of $GOPATH
c) ./webdeps.sh # download browser modules
d) Edit kVersionDate in main.go
e) ./pkg.sh # make release downloads for all platforms

Building for Windows requires patches to the Go source (which do not affect other programs):
go-winfsd.patch fixes #32088
go-winstat.patch fixes #9611
Apply patches with: cp go*.patch /.../go && (cd /.../go && git apply go*.patch)

Testing

An automated test sequence is defined in test-in.json. It creates accounts Blue and Gold, which then exchange messages. It yields occasional false positives due to loose synchronization between the two accounts. After a test pass completes, the app provides http on port 8123 (unless --http is given):
./mnm-hammer --test server:port # server:port is a TMTP service
To access a previous test pass:
(cd test-run/TPD/ && ../../mnm-hammer --http :8123) # TPD is a directory name

Crash testing
a) ./mnm-hammer --test server:port --crash init # make test directory
b) ./mnm-hammer --test server:port --crash dir:service:order:op[:sender:order] # crash here in test sequence
c) ./mnm-hammer --test server:port --verify dir:service:order:count # recover and verify result

./test-crash.sh server:port [ item_index ] # collection of crash/verify runs in single directory

Code Coverage

a) go test -c -covermode=count -coverpkg ./...
b) go build
c) ./mnm-hammer.test --test localhost:443 -test.coverprofile mnm-hammer.cov
. . . # this test pass directory is TPD below
d) go tool cover -html=test-run/TPD/mnm-hammer.cov -o web/coverage.html
e) (cd test-run/TPD/ && ../../mnm-hammer --http :8123)
f) Open a browser tab, go to localhost:8123/w/coverage.html

Ref: https://www.elastic.co/blog/code-coverage-for-your-golang-system-tests

License

Copyright 2018, 2020 Liam Breck
Published at https://github.com/networkimprov/mnm-hammer

This Source Code Form is subject to the terms of the Mozilla Public
License, v. 2.0. If a copy of the MPL was not distributed with this
file, You can obtain one at http://mozilla.org/MPL/2.0/

Documentation

The Go Gopher

There is no documentation for this package.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL