Commit Graph
13 Commits
Author SHA1 Message Date
Hamza El-Saawy e268c11e27 Add lint and go generate steps to CI (#254)
* Add lint and go generate stages to CI

Add CI step to verify `go generate` was run on repo.
Add linter stage to CI along with linter config file,
`.golangci.yml`.
Will likely prefer revive over static-check.

Updated README Contributing section on linting requirements.

Added sequence ordering to make sure lint and go generate stages run
before tests and build.
This way, build and tests are not run on code that could potentially:

    1. not build due to `gofmt` issues;
    2. contain bugs;
    3. have to be re-submitted after issues are fixed; or
    4. contain outdated Win32 syscall or other auto-generated files.

Signed-off-by: Hamza El-Saawy <hamzaelsaawy@microsoft.com>

* Fixed linter issues

Code changes to satisfy linters:

 - Ran `gofmt -s -w` on repo.
 - Broke up long lines.
 - When possible, changed names with incorrect initialism formatting
   - Added exceptions for exported variables.
 - Added exceptions for ALL_CAPS_WITH_UNDERSCORES code.
   - Switched to using `windows` or `syscall` definitions if possible;
     especially if some constants were unused.
 - Added `_ =` to satisfy error linter, and acknowledge that errors are
   being ignored.
 - Switched to using `errors.Is` and `As` in places, elsewhere added
   exceptions if error value was known to be `syscall.Errno`.
 - Removed bare returns.
 - Prevented variables from being overshadowed in certain places
   (ignoring cases of overshadowing `err`).
 - Renamed variables and functions (eg, `len`, `eventMetadata.bytes`) to
   prevent shadowing pre-built functions and imported pacakges.
 - Removed unused method receivers.
 - Added exceptions to certain unused (unexported) constants and
   functions.
   - Deleted unused `once` from `pkg/etw.providerMap`.
 - Renamed `noop.go` files to `main_other.go` or `doc.go`, to better fit
   style recommendations.
 - Added exceptions for non-secure use of SHA1 and weak crypto
   libraries.
 - Replaced `ioutil` with `io` and `os` (and `t.TempDir` in tests).
 - Added fully exhaustive checks for `switch` statements in `pkg/etw`.
 - Defined constant strings for `tools/mkwinsyscall`.
 - Removed unnecessary conversions.
 - Made sure `context.Cancel` was called.

Additionally, added `//go:build windows" constraints on files with
unexported code, since linter will complain about unused code on
non-Windows platforms.

Added a stub `main() {}` for `mkwinsyscall` for non-Windows builds, just in
case `//go:generate` directives are added to OS-agnostic files.

Signed-off-by: Hamza El-Saawy <hamzaelsaawy@microsoft.com>

* PR: spelling, constants, fuzzing

Moved HVSocket fuzzing tests to separate file with go 1.18 build
constraint.

Signed-off-by: Hamza El-Saawy <hamzaelsaawy@microsoft.com>

Signed-off-by: Hamza El-Saawy <hamzaelsaawy@microsoft.com>
2022-08-23 15:05:05 -04:00
Danny Canter 1e35b45f32 Bump go version to 1.17 in go.mod/CI (#230)
1.13 is sufficiently old at this point and net.ErrClosed from 1.16 will be nice
to use.

This change additionally runs go fmt to bring in the new 1.17 build tag syntax
and builds the binaries in our CI with 1.17+.

Signed-off-by: Daniel Canter <dcanter@microsoft.com>
2022-04-05 15:56:47 -07:00
Kathryn Baldauf 8f0d50b3b3 Revert "[Temporary] Revert Implement winio.GetFileStandardInfo FileInfo commits " 2021-04-22 10:33:11 -07:00
Kathryn Baldauf e5bd3f6e28 Revert "Implement winio.GetFileStandardInfo"
This reverts commit ef753e60d2.

Signed-off-by: Kathryn Baldauf <kabaldau@microsoft.com>
2021-04-21 12:50:05 -07:00
Kathryn Baldauf d80ed10b91 Revert "Replace local *FileInformationByHandleEx with x/sys/windows"
This reverts commit bfd546865c.

Signed-off-by: Kathryn Baldauf <kabaldau@microsoft.com>
2021-04-21 12:49:46 -07:00
Paul "TBBle" Hampson ef753e60d2 Implement winio.GetFileStandardInfo
Signed-off-by: Paul "TBBle" Hampson <Paul.Hampson@Pobox.com>
2021-02-11 22:50:55 +11:00
Paul "TBBle" Hampson bfd546865c Replace local *FileInformationByHandleEx with x/sys/windows
We also get pre-defined constants instead of carrying our own copies.

However, this changes the public API winio.FileBasicInfo from using
syscall.Filetime to using windows.Filetime, as visible in
backuptar/tar.go.

Signed-off-by: Paul "TBBle" Hampson <Paul.Hampson@Pobox.com>
2021-02-11 22:50:55 +11:00
Jiri Appl 5380df2ba5 Changes based on PR 2018-08-03 12:01:41 -07:00
Jiri Appl 350b9857de Update FileAttributes size to work on 32 bit platforms 2018-08-02 10:42:57 -07:00
Darren Stahl e9792bc98c Added runtime.KeepAlive for the new stricter 1.8 GC
Signed-off-by: Darren Stahl <darst@microsoft.com>
2017-05-03 12:47:12 -07:00
Cezar Sa Espinola 94c0518b08 Include build tags to allow go get on non-Windows platforms. Fixes #30 2016-10-06 18:00:50 -03:00
John Starks 2245090e75 Add GetFileID function 2016-03-30 12:38:04 -07:00
John Starks 1ac2c4761f Add functions to get/set FILE_BASIC_INFO 2016-02-18 20:33:57 -08:00