Tags: hack-pad/hackpadfs
Tags
Simplify 32 bit CI workflow & lint, test on Go 1.19-1.22 (#45) A couple changes to simplify various workflows, plus explicitly testing on the latest Go versions. * Enable race on all supported platforms, explicitly set -race= flag * Move linters-settings below linters list * Reformat octal integers to latest gofmt style * Fix comments to strictly follow godoc style * Disable govet's fieldalignment memory size check on test files * Test on Go 1.19-1.22, verify 32 bit field alignment on Linux with latest Go
fix: fix field alignment to avoid panics on 32bit OSes (#44) Fixes #43 To solve this: - enabled the `fieldalignment` linter (which is a sub-linter of `govet`) - ran the `fieldalignment -fix` command to fix misaligned structs that were non-obvious - switch from using e.g. `int64` + `atomic.StoreInt64` to using `atomic.Int64` (etc) and because of this... - drop Go 1.18 support, and require Go 1.19+ (where the new atomic types were introduced) - added a new CI job to test in a 32-bit container (so far just Intel 386, which should catch the same bugs as arm32/etc) - added some new tests to cover `keyvalue/blob.Bytes`, which was what was giving me trouble initially --------- Signed-off-by: Dave Henderson <dhenderson@gmail.com>
indexeddb: Add tests and fix bugs (#34) * Move JS .env file to indexeddb, should not be in root * Update to latest wasmbrowsertest * Remove redundant and unused code * Test store.Get/Set, fix missing op record for sets * Fix indexeddb Set handler not storing delete result * Upgrade go-indexeddb to fix missing abort handling * Fix missing parent dir error not returned
Use safejs for JS panic handling, add JS to coverage reports (#31) Switches to https://github.com/hack-pad/safejs to properly handle all JavaScript panic scenarios in the IndexedDB FS. Also adds JS to coverage reports, now that wasmbrowsertest supports JS coverage profiles: agnivade/wasmbrowsertest#41 NOTE: Drops support for Go 1.16 and 1.17 to use safejs. Requires a minor version bump v0.x to give adopters a heads up. * Add .env file for automatic GOOS/GOARCH editor settings * Handle new req.Listen errors * Add JS test coverage to report
Implement MountFS on `Sub()` fallback to support non-read operations (#… …28) Implements MountFS on `Sub()` fallback to support non-read operations. Caveat: The `PathError`s returned from `File` operations use their original `Path` values. This is a limitation of the current MountFS design, where the returned File from Open(), OpenFile(), and Create() are returned as-is to support direct interface checks in client code. Wrappers would break this behavior and therefore were avoided. Part of #21
fstest: Use `hackpadfs.Fn()` and skip helpers to detect MountFS suppo… …rted operations too (#27) Uses `hackpadfs.Fn()` and skip helpers to detect MountFS supported operations in `fstest`. Unblocks #21 Also fixes 2 bugs: * Fixes `keyvalue.Rename()` when source and destination are the same file. * Fixes `hackpadfs.RemoveAll()` failed to remove a file at root.
PreviousNext