github.com/juju/juju@v0.0.0-20240430160146-1752b71fcf00/cmd/containeragent/unit/package_test.go (about) 1 // Copyright 2020 Canonical Ltd. 2 // Licensed under the AGPLv3, see LICENCE file for details. 3 4 package unit_test 5 6 import ( 7 "testing" 8 9 "github.com/juju/collections/set" 10 jc "github.com/juju/testing/checkers" 11 gc "gopkg.in/check.v1" 12 13 coretesting "github.com/juju/juju/testing" 14 ) 15 16 func TestPackage(t *testing.T) { 17 gc.TestingT(t) 18 } 19 20 type importSuite struct{} 21 22 var _ = gc.Suite(&importSuite{}) 23 24 func (*importSuite) TestImports(c *gc.C) { 25 // TODO(sidecar) - improve test performance 26 c.Skip("test times out on Jenkins") 27 found := set.NewStrings( 28 coretesting.FindJujuCoreImports(c, "github.com/juju/juju/cmd/containeragent/unit")...) 29 30 expected := set.NewStrings( 31 "agent", 32 "agent/tools", 33 "api", 34 "api/agent/agent", 35 "api/authentication", 36 "api/base", 37 "api/client/block", 38 "api/agent/caasoperator", 39 "api/common", 40 "api/common/cloudspec", 41 "api/controller/controller", 42 "api/controller/instancepoller", 43 "api/agent/keyupdater", 44 "api/agent/leadership", 45 "api/agent/logger", 46 "api/logsender", 47 "api/agent/machiner", 48 "api/agent/migrationflag", 49 "api/agent/migrationminion", 50 "api/client/modelmanager", 51 "api/agent/proxyupdater", 52 "api/agent/reboot", 53 "api/agent/retrystrategy", 54 "api/agent/unitassigner", 55 "api/agent/uniter", 56 "api/agent/upgrader", 57 "api/client/usermanager", 58 "api/watcher", 59 "cmd/containeragent/utils", 60 "apiserver/errors", 61 "rpc/params", 62 "apiserver/apiserverhttp", 63 "caas", 64 "caas/kubernetes/clientconfig", 65 "caas/kubernetes/provider", 66 "caas/kubernetes/provider/application", 67 "caas/kubernetes/provider/constants", 68 "caas/kubernetes/provider/proxy", 69 "caas/kubernetes/provider/resources", 70 "caas/kubernetes/provider/specs", 71 "caas/kubernetes/provider/storage", 72 "caas/kubernetes/provider/utils", 73 "caas/kubernetes/provider/watcher", 74 "caas/specs", 75 "charmhub", 76 "charmhub/path", 77 "charmhub/transport", 78 "charmstore", 79 "cloud", 80 "cloudconfig", 81 "cloudconfig/cloudinit", 82 "cloudconfig/instancecfg", 83 "cloudconfig/podcfg", 84 "cmd", 85 "cmd/juju/common", 86 "cmd/juju/interact", 87 "cmd/jujud/agent/addons", 88 "cmd/jujud/agent/agentconf", 89 "cmd/jujud/agent/config", 90 "cmd/jujud/agent/engine", 91 "cmd/jujud/agent/errors", 92 "cmd/modelcmd", 93 "cmd/output", 94 "controller", 95 "core/actions", 96 "core/annotations", 97 "core/application", 98 "core/base", 99 "core/constraints", 100 "core/devices", 101 "core/globalclock", 102 "core/instance", 103 "core/leadership", 104 "core/lease", 105 "core/life", 106 "core/lxdprofile", 107 "core/machinelock", 108 "core/migration", 109 "core/model", 110 "core/network", 111 "core/network/firewall", 112 "core/paths", 113 "core/paths/transientfile", 114 "core/permission", 115 "core/presence", 116 "core/quota", 117 "core/raftlease", 118 "core/relation", 119 "core/resources", 120 "core/secrets", 121 "core/snap", 122 "core/status", 123 "core/watcher", 124 "downloader", 125 "environs", 126 "environs/bootstrap", 127 "environs/cloudspec", 128 "environs/config", 129 "environs/context", 130 "environs/filestorage", 131 "environs/dashboard", 132 "environs/imagemetadata", 133 "environs/instances", 134 "environs/simplestreams", 135 "environs/storage", 136 "environs/sync", 137 "environs/tags", 138 "environs/tools", 139 "environs/utils", 140 "feature", 141 "juju", 142 "juju/keys", 143 "juju/names", 144 "juju/osenv", 145 "juju/sockets", 146 "jujuclient", 147 "logfwd", 148 "logfwd/syslog", 149 "mongo", // TODO: move mongo dependency from JUJU CLI if we decide to split the `agent.Config` for controller and machineagent/unitagent/containeragent. 150 "network", 151 "network/debinterfaces", 152 "network/netplan", 153 "packaging", 154 "packaging/dependency", 155 "pki", 156 "pki/tls", 157 "proxy", 158 "provider/lxd/lxdnames", 159 "pubsub/agent", 160 "rpc", 161 "rpc/jsoncodec", 162 "service", 163 "service/common", 164 "service/snap", 165 "service/systemd", 166 "state/errors", 167 "storage", 168 "storage/provider", 169 "tools", 170 "utils/proxy", 171 "utils/scriptrunner", 172 "version", 173 "worker", 174 "worker/agent", 175 "worker/apiaddressupdater", 176 "worker/apicaller", 177 "worker/apiconfigwatcher", 178 "worker/caasprober", 179 "worker/common/charmrunner", 180 "worker/common/reboot", 181 "worker/fortress", 182 "worker/introspection", 183 "worker/introspection/pprof", 184 "worker/leadership", 185 "worker/logger", 186 "worker/logsender", 187 "worker/migrationflag", 188 "worker/migrationminion", 189 "worker/muxhttpserver", 190 "worker/proxyupdater", 191 "worker/retrystrategy", 192 "worker/uniter", 193 "worker/uniter/actions", 194 "worker/uniter/charm", 195 "worker/uniter/container", 196 "worker/uniter/hook", 197 "worker/uniter/leadership", 198 "worker/uniter/operation", 199 "worker/uniter/reboot", 200 "worker/uniter/relation", 201 "worker/uniter/remotestate", 202 "worker/uniter/resolver", 203 "worker/uniter/runcommands", 204 "worker/uniter/runner", 205 "worker/uniter/runner/context", 206 "worker/uniter/runner/debug", 207 "worker/uniter/runner/jujuc", 208 "worker/uniter/storage", 209 "worker/uniter/upgradeseries", 210 "worker/uniter/verifycharmprofile", 211 "wrench", 212 ) 213 214 unexpected := found.Difference(expected) 215 // TODO: review if there are any un-expected imports! 216 // Show the values rather than just checking the length so a failing 217 // test shows them. 218 c.Check(unexpected.SortedValues(), jc.DeepEquals, []string{}) 219 // If unneeded show any values this is good as we've reduced 220 // dependencies, and they should be removed from expected above. 221 unneeded := expected.Difference(found) 222 c.Check(unneeded.SortedValues(), jc.DeepEquals, []string{}) 223 }