forked from huacnlee/omamail
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMakefile
More file actions
147 lines (138 loc) · 4.98 KB
/
Copy pathMakefile
File metadata and controls
147 lines (138 loc) · 4.98 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
QMLLINT := /usr/lib/qt6/bin/qmllint
QML_FILES := Service.qml BarWidget.qml App.qml \
account/MailAccount.qml \
cache/CacheStore.qml cache/BodyCache.qml \
providers/AuthManager.qml providers/GmailApiClient.qml \
providers/ImapAuth.qml providers/ImapClient.qml \
providers/HeyAuth.qml providers/HeyClient.qml \
components/ImapSetupPage.qml \
components/HeySetupPage.qml \
components/ProviderPicker.qml \
components/GmailIcon.qml \
components/ProviderLogo.qml \
components/ProviderHero.qml \
components/LinkLabel.qml \
components/MailboxSidebar.qml \
components/MailboxTabs.qml \
components/MessageList.qml \
components/ListSkeleton.qml \
components/MessageRow.qml \
components/MessageMenu.qml \
components/MenuActionRow.qml components/MenuSeparatorLine.qml \
components/KeyRouter.qml \
components/ActionIcon.qml \
components/IconButton.qml \
components/IconTextButton.qml \
components/ImagePopover.qml \
components/AttachmentRow.qml \
components/KeyHints.qml \
components/MessageReader.qml \
components/ReaderNotice.qml \
components/InviteCard.qml \
components/ReaderBlankSlate.qml \
components/ReaderSkeleton.qml \
components/ComposeView.qml \
components/RecipientSuggestions.qml \
components/ContactsPicker.qml \
components/UndoSendToast.qml \
components/DraftSavedToast.qml \
components/SearchBar.qml \
components/AppMenu.qml \
components/AccountSwitcher.qml \
components/AccountRemovalDialog.qml \
components/BackBar.qml \
components/UserBar.qml \
components/SettingsPage.qml \
components/CalendarSettings.qml \
components/CalendarEventComposer.qml \
components/CalendarEventDetail.qml \
components/CalendarPalette.qml \
components/ConfirmDeleteDialog.qml \
components/SetupPage.qml \
components/ShortcutHelp.qml \
calendar/CalendarController.qml calendar/CalendarCache.qml \
components/CalendarView.qml \
components/WeekCalendarView.qml \
bar/BarPreview.qml
.PHONY: test test-js test-shell test-qml qml-check validate bench
test: test-js test-shell test-qml
# The parsing, formatting, and decision rules live in plain JS precisely so
# they can be tested without a compositor. These run anywhere node does.
test-js:
node tests/test_compose_recovery.js
node tests/test_outbox.js
node tests/test_recipients.js
node tests/test_senders.js
node tests/test_oauth.js
node tests/test_credentials.js
node tests/test_secrets.js
node tests/test_gmail_api.js
node tests/test_message.js
node tests/test_calendar.js
node tests/test_calendar_cache.js
node tests/test_calendar_feed.js
node tests/test_calendar_sources.js
node tests/test_calendar_palette.js
node tests/test_bar_preview.js
node tests/test_unsubscribe.js
node tests/test_mailto.js
node tests/test_html.js
node tests/test_direction.js
node tests/test_cache.js
node tests/test_model.js
node tests/test_keymap.js
node tests/test_accounts.js
node tests/test_aliases.js
node tests/test_menu.js
node tests/test_provider.js
node tests/test_imap.js
node tests/test_hey.js
test-shell:
python3 tests/test_contacts.py
python3 tests/test_qml_names.py
python3 tests/test_qml_text_format.py
bash tests/test_source.sh
bash tests/test_service_source.sh
bash tests/test_install.sh
bash tests/test_mailto.sh
bash tests/test_transport.sh
bash tests/test_unsubscribe_transport.sh
bash tests/test_image_fetch.sh
bash tests/test_attachment_open.sh
bash tests/test_attachment.sh
bash tests/test_calendar_transport.sh
bash tests/test_calendar_write.sh
bash tests/test_calendar_delete.sh
bash tests/test_release_notes.sh
# Focus ownership and key routing cannot be tested without a focus scope, and a
# focus scope needs the QML engine. Offscreen, so it needs no compositor: the
# bugs this catches — a hidden component owning the focus and swallowing keys, a
# Repeater building no Shortcuts — are invisible to any test that cannot
# instantiate one.
#
# Found rather than hard-coded: the binary is at /usr/lib/qt6/bin on Arch and on
# PATH as qmltestrunner6 on Debian and Ubuntu, and pinning one of those makes
# the suite unrunnable on the other.
QMLTESTRUNNER := $(shell command -v qmltestrunner6 2>/dev/null \
|| ls /usr/lib/qt6/bin/qmltestrunner 2>/dev/null \
|| command -v qmltestrunner 2>/dev/null)
test-qml:
@test -n "$(QMLTESTRUNNER)" || { \
echo "qmltestrunner not found: install Qt 6 QML test tooling" >&2; \
echo " Arch: qt6-declarative" >&2; \
echo " Ubuntu: qt6-declarative-dev-tools qml6-module-qttest" >&2; \
exit 1; }
QT_QPA_PLATFORM=offscreen QT_QUICK_BACKEND=software \
$(QMLTESTRUNNER) -import $(CURDIR)/tests/qml/imports -input tests/qml
# Both engines on the same fixtures. The QML column is the one that decides
# anything — the shell runs that engine, not node's — so run it on the machine
# the shell runs on. Not part of `test`: it takes a few seconds and measures
# rather than asserts.
bench:
bash tests/bench.sh
# Needs the Omarchy shell's qs.Commons / qs.Ui on the import path.
qml-check:
$(QMLLINT) -I /usr/share/omarchy/shell $(QML_FILES)
validate: test qml-check
omarchy plugin validate .
git diff --check