/ test / solidity-mode-test-setup.el
solidity-mode-test-setup.el
 1  ;;; solidity-mode-test-setup.el --- Setup and execute all tests
 2  
 3  ;;; Commentary:
 4  
 5  ;; This package sets up a suitable enviroment for testing
 6  ;; solidity-mode, and executes the tests.
 7  ;;
 8  ;; Usage:
 9  ;;
10  ;;   emacs -q -l test/solidity-mode-test-setup.el
11  ;;
12  ;; Note that this package assumes that some packages are located in
13  ;; specific locations.
14  
15  ;;; Code:
16  
17  (setq user-init-file (or load-file-name (buffer-file-name)))
18  (setq user-emacs-directory (file-name-directory user-init-file))
19  
20  (require 'package)
21  (add-to-list 'package-archives '("melpa" . "https://melpa.org/packages/") t)
22  (setq package-enable-at-startup nil)
23  (package-initialize)
24  (when (not package-archive-contents)
25    (package-refresh-contents))
26  
27  (defvar bootstrap-version)
28  (let ((bootstrap-file
29         (expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory))
30        (bootstrap-version 5))
31    (unless (file-exists-p bootstrap-file)
32      (with-current-buffer
33          (url-retrieve-synchronously
34           "https://raw.githubusercontent.com/raxod502/straight.el/develop/install.el"
35           'silent 'inhibit-cookies)
36        (goto-char (point-max))
37        (eval-print-last-sexp)))
38    (load bootstrap-file nil 'nomessage))
39  
40  (straight-use-package 'use-package)
41  
42  (add-to-list 'load-path (expand-file-name "./"))
43  (add-to-list 'load-path (expand-file-name "./test"))
44  (package-install-file "solidity-mode.el")
45  (package-install-file "solidity-flycheck.el")
46  (global-flycheck-mode 1)
47  
48  (use-package solidity-mode
49    :mode ("\\.sol\\'" . solidity-mode))
50  
51  (use-package solidity-flycheck
52    :defer t
53    :init
54    (setq solidity-flycheck-solium-checker-active t)
55    (setq solidity-flycheck-solc-checker-active t)
56    (setq solidity-flycheck-chaining-error-level t)
57    (setq solidity-flycheck-use-project t)
58    (setq solidity-flycheck-solc-additional-allow-paths '("~/.brownie/packages"))
59    (add-hook
60     'solidity-mode-hook
61     (lambda ()
62       (require 'solidity-flycheck))))
63  
64  (require 'ert)
65  
66  (require 'solidity-flycheck-tests)
67  
68  (ert t)