summaryrefslogtreecommitdiff
path: root/gnu/tests
AgeCommit message (Expand)Author
2019-06-19tests: Fix opensmtpd test....* gnu/tests/mail.scm (run-opensmtpd-test) <"mail arrived">: Invoke smtpctl by its full file name. Tobias Geerinckx-Rice
2019-06-07pack: Add '--entry-point'....* guix/scripts/pack.scm (self-contained-tarball): Add #:entry-point and warn when it's true. (squashfs-image): Add #:entry-point and honor it. (docker-image): Add #:entry-point and honor it. (%options, show-help): Add '--entry-point'. (guix-pack): Honor '--entry-point' and pass #:entry-point to BUILD-IMAGE. * gnu/tests/docker.scm (run-docker-test): Test 'docker run' with the default entry point. (build-tarball&run-docker-test): Pass #:entry-point to 'docker-image'. * doc/guix.texi (Invoking guix pack): Document it. * gnu/tests/singularity.scm (run-singularity-test)["singularity run"]: New test. (build-tarball&run-singularity-test): Pass #:entry-point to 'squashfs-image'. Ludovic Courtès
2019-06-07services: Add Singularity....* gnu/packages/linux.scm (singularity)[source](snippet): Change file name of setuid helpers in libexec/cli/*.exec. [arguments]: Remove "--disable-suid". * gnu/services/docker.scm (%singularity-activation): New variable. (singularity-setuid-programs): New procedure. (singularity-service-type): New variable. * gnu/tests/singularity.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * doc/guix.texi (Miscellaneous Services): Document it. Ludovic Courtès
2019-05-31services: Add patchwork....* gnu/service/web.scm (<patchwork-database-configuration> <patchwork-settings-module>, <patchwork-configuration>): New record types. (patchwork-virtualhost): New procedure. (patchwork-service-type): New variable. * gnu/tests/web.scm (%test-patchwork): New variable. * doc/guix.text (Web Services): Document it. Christopher Baines
2019-05-31services: Add getmail....Getmail is a mail retriever written in Python, this commit adds a service-type to run getmail. I'm looking at this, as it's a convinient way of getting mailing list messages in to Patchwork. I initially tried putting this in the (gnu services mail) module, but due to also trying to use the define-configuration pattern, it conflicted with the dovecot service. * gnu/services/getmail.scm: New file. * gnu/local.mk: Add it. * gnu/tests/mail.scm (%getmail-os, %test-getmail): New variables. (run-getmail-test): New procedure. Christopher Baines
2019-05-15vm: 'system-docker-image' provides an entry point....This simplifies use of images created with 'guix system docker-image'. * gnu/system/vm.scm (system-docker-image)[boot-program]: New variable. [os]: Add it to the GC roots. [build]: Pass #:entry-point to 'build-docker-image'. * gnu/tests/docker.scm (run-docker-system-test): New procedure. (%test-docker-system): New variable. * doc/guix.texi (Invoking guix system): Remove GUIX_NEW_SYSTEM hack and '--entrypoint' from the example. Mention 'docker create', 'docker start', and 'docker exec'. Ludovic Courtès
2019-05-15system: Add 'operating-system-with-gc-roots'....* gnu/tests/install.scm (operating-system-with-gc-roots): Move to... * gnu/system.scm (operating-system-with-gc-roots): ... here. New procedure. Ludovic Courtès
2019-05-15tests: Skip unreliable "herd invalidate nscd" test....* gnu/tests/base.scm (run-basic-test)["nscd invalidate action, wrong table"]: Skip unconditionally. Ludovic Courtès
2019-05-15tests: 'getlogin' test creates its file atomically....Previously we could end up reading an empty /root/login-id file. * gnu/tests/base.scm (run-basic-test)["getlogin on tty1"]: Create /root/login-id atomically. Ludovic Courtès
2019-05-09services: Log-in services now require "pam_loginuid"....Fixes <https://bugs.gnu.org/35553>. Reported by Bruno Haible <bruno@clisp.org>. * gnu/services/base.scm (login-pam-service): Pass #:login-uid? #t to 'unix-pam-service'. * gnu/services/ssh.scm (lsh-pam-services, openssh-pam-services): Likewise. * gnu/services/xorg.scm (slim-pam-service): Likewise. (gdm-pam-service): Likewise for "gdm-autologin" and "gdm-password". * gnu/tests/base.scm (run-basic-test)["getlogin on tty1"]: New test. * gnu/tests/ssh.scm (run-ssh-test): Add #:test-getlogin? parameter. ["getlogin"]: New test. (%test-dropbear): Pass #:test-getlogin? #f. Ludovic Courtès
2019-04-14tests: separate-store-os: Increase root partition size....* gnu/tests/install.scm (%separate-store-installation-script): Increase size of the root partition so that it's big enough to contain downloaded nars and temporary files. Add 'df -h /mnt/gnu'. Ludovic Courtès
2019-03-31services: Open vSwitch: Provide a default configuration....* gnu/services/networking.scm (openvswitch-service-type): Provide OPENVSWITCH-CONFIGURATION as a default value. * gnu/tests/networking.scm (%openvswitch-os): Don't configure the service. Marius Bakke
2019-03-25accounts: Add default value for the 'home-directory' field of <user-account>....* gnu/system/accounts.scm (<user-account>)[home-directory]: Mark as thunked and add a default value. (default-home-directory): New procedure. * doc/guix.texi (User Accounts): Remove 'home-directory' from example. * gnu/system/examples/bare-bones.tmpl: Likewise. * gnu/system/examples/beaglebone-black.tmpl: Likewise. * gnu/system/examples/desktop.tmpl: Likewise. * gnu/system/examples/docker-image.tmpl: Likewise. * gnu/system/examples/lightweight-desktop.tmpl: Likewise. * gnu/system/install.scm (installation-os): Likewise. * gnu/tests.scm (%simple-os): Likewise. * gnu/tests/install.scm (%minimal-os, %minimal-os-on-vda): (%separate-home-os, %encrypted-root-os, %btrfs-root-os): Likewise. * tests/accounts.scm ("allocate-passwd") ("allocate-passwd with previous state"): Likewise. Ludovic Courtès
2019-03-20services: Add nslcd-service-type....* gnu/services/authentication.scm (nslcd-service-type, nslcd-configuration, %nslcd-accounts): New variables. (uglify-field-name, value->string, serialize-field, serialize-list, ssl-option?, tls-reqcert-option?, deref-option?, comma-separated-list-of-strings?, serialize-ignore-users-option, log-option?, serialize-log-option, valid-map?, scope-option?, serialize-scope-option, map-entry?, list-of-map-entries?, filter-entry?, list-of-filter-entries?, serialize-filter-entry, serialize-list-of-filter-entries, serialize-map-entry, serialize-list-of-map-entries, nslcd-config-file, nslcd-etc-service, nslcd-shepherd-service, pam-ldap-pam-services, pam-ldap-pam-service, generate-nslcd-documentation): New procedures. * gnu/tests/ldap.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Add it. * doc/guix.texi (LDAP Services): Document it. Ricardo Wurmus
2019-03-13Remove traces of "GuixSD"....* gnu/bootloader/extlinux.scm (extlinux-configuration-file): Remove mentions of "GuixSD". * gnu/bootloader/grub.scm (install-grub-efi): Likewise. * gnu/build/vm.scm (make-iso9660-image): Change default #:volume-id to "Guix_image". (initialize-hard-disk): Search for the "Guix_image" label. * gnu/ci.scm (system-test-jobs, tarball-jobs): Remove "GuixSD". * gnu/installer/newt/welcome.scm (run-welcome-page): Likewise. * gnu/packages/audio.scm (supercollider)[description]: Likewise. * gnu/packages/curl.scm (curl): Likewise. * gnu/packages/emacs.scm (emacs): Likewise. * gnu/packages/gnome.scm (network-manager): Likewise. * gnu/packages/julia.scm (julia): Likewise. * gnu/packages/linux.scm (alsa-plugins): Likewise. (powertop, wireless-regdb): Likewise. * gnu/packages/package-management.scm (guix): Likewise. * gnu/packages/polkit.scm (polkit): Likewise. * gnu/packages/tex.scm (texlive-bin): Likewise. * gnu/services/base.scm (file-systems->fstab): Likewise. * gnu/services/cups.scm (%cups-activation): Likewise. * gnu/services/mail.scm (%dovecot-activation): Likewise. * gnu/services/messaging.scm (prosody-configuration)[log]: Likewise. * gnu/system/examples/vm-image.tmpl (vm-image-motd): Likewise. * gnu/system/install.scm (installation-os)[file-systems]: Change root file system label to "Guix_image". * gnu/system/mapped-devices.scm (check-device-initrd-modules): Remove "GuixSD". * gnu/system/vm.scm (system-docker-image): Likewise. (system-disk-image)[root-label]: Change to "Guix_image". * gnu/tests/install.scm (run-install): Remove "GuixSD". * guix/modules.scm (guix-module-name?): Likewise. * nix/libstore/optimise-store.cc: Likewise. Ludovic Courtès
2019-03-08activation: Shared system home directories are now 555 and root-owned....Fixes <https://bugs.gnu.org/34788>. Reported by Jack Hill <jackhill@jackhill.us>. Regression introduced by the combination of 8bb76f3d44c1f5ffec8011819494db306a51d801 and 0ae735bcc8ff7fdc89d67b492bdee9091ee19e86: /var/empty would be 700 and owned by one of the system accounts (thus inaccessible to others), and /var/run/dbus would be 700 as well, thereby preventing D-Bus clients from connecting to the daemon. * gnu/build/activation.scm (duplicates): New procedure. (activate-users+groups)[system-accounts]: New variable. Use it. Make shared system account home directories #o555 and root-owned. * gnu/services/dbus.scm (dbus-activation): Make /var/run/dbus #o755. * gnu/tests/base.scm (run-basic-test): Test the ownership and permissions of /var/empty. Ludovic Courtès
2019-03-04tests: Use non-deprecated (guix store) API....This is a followup to f9e8a12379c6fefc9e5c3c7fc3926599bbefc013. * gnu/tests/base.scm (run-basic-test)["/run/current-system is a GC root"]: Use 'store-protocol-error?' instead of 'nix-protocol-error?'. Ludovic Courtès
2019-01-22gnu: Remove duplicate record fields....* gnu/packages/haskell.scm (ghc-case-insensitive): Remove duplicate 'inputs' field. * gnu/packages/python-xyz.scm (python2-pysnptools): Remove duplicate 'native-inputs' field. * gnu/tests/install.scm (%separate-home-os): Remove duplicate 'type' field. Ludovic Courtès
2019-01-18tests: docker: Use "package" instead of "dummy-package"....* gnu/tests/docker.scm (build-tarball&run-docker-test): Use "package" instead of "dummy-package". Danny Milosavljevic
2019-01-17tests: Rename %test-encrypted-os to %test-encrypted-root-os....* gnu/tests/install.scm (%test-encrypted-os): Rename to %test-encrypted-root-os for consistency with its system-test name. Mathieu Othacehe
2019-01-16services: avahi: Deprecate the 'avahi-service' procedure....* gnu/services/avahi.scm (<avahi-configuration>): Export getters. Add default values. (avahi-service-type)[default-value]: New field. (avahi-service): Mark as deprecated. * gnu/services/desktop.scm (%desktop-services): Use the 'service' form instead of calling 'avahi-service'. * gnu/tests/base.scm (%avahi-os): Likewise. * doc/guix.texi (Base Services): Adjust example accordingly. (Networking Services): Update accordingly. Ludovic Courtès
2019-01-15tests: docker: Run a guest guile inside the docker container....* gnu/tests/docker.scm (run-docker-test): Add parameters. Load and run docker container. Check response of guest guile. (build-tarball&run-docker-test): New procedure. (%test-docker): Use it. [description]: Modify. Danny Milosavljevic
2019-01-11services: Deprecate a few more service procedures....These procedures were already either undocumented (and de facto deprecated) or documented as deprecated or redundant. * gnu/services/base.scm (guix-service, guix-publish-service): Mark as deprecated. * gnu/services/mcron.scm (mcron-service): Likewise. * gnu/services/networking.scm (tor-service): Likewise. * doc/guix.texi (Scheduled Job Execution): Remove 'mcron-service' and adjust example. (Networking Services): Remove 'tor-service'. * gnu/tests/base.scm (%mcron-os): Use 'mcron-service-type' instead of 'mcron-service'. * gnu/tests/networking.scm (%tor-os): Use 'tor-service-type' instead of 'tor-service'. * tests/guix-system.sh: Likewise. Ludovic Courtès
2019-01-11tests: Nitpick on Docker test....This is a followup to 7d8a4eeacc534c8742e0b22d855aa73e5ab66b7f. * gnu/local.mk (GNU_SYSTEM_MODULES): Add gnu/tests/docker.scm. * gnu/tests/docker.scm: Update copyright line. Ludovic Courtès
2019-01-10tests: docker: Fix test....* gnu/tests/docker.scm (run-docker-test): Set memory and disk size. (%docker-os): Add elogind service. Danny Milosavljevic
2019-01-10tests: Add Docker system test....* gnu/tests/docker.scm: New file. Danny Milosavljevic
2019-01-01gnu: php-with-bcmath: Deprecate in favour of 'php'....This is a follow-up to 4629d26755aa06344fb8f515fb0202776e70c429. * gnu/packages/php.scm (php-with-bcmath): Deprecate in favour of 'php'. * gnu/tests/monitoring.scm (%zabbix-os): Use this. Oleg Pykhalov
2018-12-24services: Add quassel....* gnu/services/messaging.scm (<quassel-configuration>): New record type. (%quassel-account, %quassel-activation): New procedures. (quassel-service-type): New variable. * gnu/tests/messaging.scm (%test-quassel): New variable. (run-quassel-test): New procedure. * doc/guix.texi (Messaging): Document quassel service. Efraim Flashner
2018-12-18file-systems: Spawn a REPL only when interaction is possible....Fixes <https://bugs.gnu.org/23697>. Reported by Jan Nieuwenhuizen <janneke@gnu.org>. * gnu/build/file-systems.scm (check-file-system): Call 'start-repl' only if current-input-port passes 'isatty?'. * gnu/services/shepherd.scm (shepherd-configuration-file): After 'for-each' expression, call 'redirect-port'. * gnu/tests/base.scm (run-basic-test)["stdin is /dev/null"]: New test. Ludovic Courtès
2018-12-17services: monitoring: Add 'zabbix-front-end'....* gnu/services/monitoring.scm (nginx-server-configuration-list?, serialize-nginx-server-configuration-list, zabbix-front-end-configuration, zabbix-front-end-config, zabbix-front-end-activation, generate-zabbix-front-end-documentation): New procedures. (%zabbix-front-end-configuration-nginx, %maintenance.inc.php, zabbix-front-end-service-type): New variables. * doc/guix.texi (Monitoring Services): Document this. Oleg Pykhalov
2018-12-17services: monitoring: Add 'zabbix-agent'....* gnu/services/monitoring.scm (zabbix-server-service-type, zabbix-agent-account, zabbix-agent-activation, zabbix-agent-config-file, zabbix-agent-shepherd-service, generate-zabbix-agent-documentation): New procedures. (zabbix-agent-service-type): New 'service-type'. * gnu/tests/monitoring.scm (run-zabbix-server-test): Test 'zabbix-agent'. (%zabbix-os): Add 'zabbix-agent' service. * doc/guix.texi (Monitoring Services): Document 'zabbix-agent'. Oleg Pykhalov
2018-12-17services: monitoring: Add 'zabbix-server'....* gnu/services/monitoring.scm (uglify-field-name, serialize-field, serialize-number, serialize-list, serialize-string, group?, serialize-group, include-files?, serialize-include-files, zabbix-server-account, zabbix-server-config-file, zabbix-server-activation, zabbix-server-shepherd-service, generate-zabbix-server-documentation, extra-options, serialize-extra-options): New procedures. (zabbix-server-service-type): New variable. * gnu/tests/monitoring.scm (%psql-user-create-zabbix, %psql-db-zabbix-create-script, %psql-db-create-zabbix, %psql-db-import-zabbix, %zabbix-os, %test-zabbix): New variables. (run-zabbix-server-test): New procedure. * doc/guix.texi (Monitoring Services): Document 'zabbix-server'. squash! services: monitoring: Add 'zabbix-server'. Oleg Pykhalov
2018-12-07Merge branch 'version-0.16.0'Ludovic Courtès
2018-12-06tests: elogind: Adjust to elogind output change....This is a follow-up to commit 4163f2467bce1a6123f0da1c49e88751d93e634b. * gnu/tests/desktop.scm (run-elogind-test): s|/dev/tty1/tty1. Marius Bakke
2018-12-04tests: Increase root partitions size to 1.2G....The system closure has grown slightly above 1GiB so adjust accordingly. * gnu/tests/install.scm (%simple-installation-script): Increase vdb2 size of 1.2G, (%extlinux-gpt-installation-script); ditto (%simple-installation-script-for-/dev/vda): ditto, (%separate-store-installation-script): ditto for vdb3, (%encrypted-root-installation-script): ditto. Ludovic Courtès
2018-11-18activation: Aways pass '-d HOME' to 'useradd'....Fixes <https://bugs.gnu.org/33422>. Reported by fps. * gnu/build/activation.scm (add-user): Always pass "-d HOME" when HOME is true. Pass "--create-home" only when HOME, CREATE-HOME?, and SYSTEM? are true. (activate-users+groups): Pass #:create-home? create-home? to 'ensure-user'. * gnu/tests/base.scm (run-basic-test)["accounts"]: Test 'passwd:dir' as well. Ludovic Courtès
2018-11-13services: nscd: Add 'invalidate' and 'statistics' actions....* gnu/services/base.scm (nscd-action-procedure, nscd-actions): New procedures. (nscd-shepherd-service): Add 'modules' and 'actions' fields. * gnu/tests/base.scm (run-basic-test)["nscd invalidate action"] ["nscd invalidate action, wrong table"]: New tests. * doc/guix.texi (Services): Mention 'herd doc nscd action'. (Base Services): Document the actions. Ludovic Courtès
2018-10-18services: dhcp-client: Deprecate 'dhcp-client-service' procedure....* gnu/services/networking.scm (dhcp-client-service-type): Add default value. * gnu/system/examples/bare-bones.tmpl: Use (service dhcp-client-service-type) instead of (dhcp-client-service). * gnu/system/examples/beaglebone-black.tmpl: Likewise. * gnu/tests/base.scm (%avahi-os): Likewise. * gnu/tests/databases.scm (%memcached-os): Likewise. (%mongodb-os): Likewise. * gnu/tests/dict.scm (%dicod-os): Likewise. * gnu/tests/mail.scm (%opensmtpd-os): Likewise. (%exim-os): Likewise. (%dovecot-os): Likewise. * gnu/tests/messaging.scm (run-xmpp-test): Likewise. (run-bitlbee-test): Likewise. * gnu/tests/monitoring.scm (%prometheus-node-exporter-os): Likewise. * gnu/tests/networking.scm (%inetd-os): Likewise. (run-iptables-test): Likewise. * gnu/tests/nfs.scm (%base-os): Likewise. * gnu/tests/rsync.scm (%rsync-os): Likewise. * gnu/tests/ssh.scm (run-ssh-test): Likewise. * gnu/tests/version-control.scm (%cgit-os): Likewise. (%git-http-os): Likewise. (%gitolite-os): Likewise. * gnu/tests/virtualization.scm (%libvirt-os): Likewise. * gnu/tests/web.scm (%httpd-os): Likewise. (%nginx-os): Likewise. (%varnish-os): Likewise. (%php-fpm-os): Likewise. (%hpcguix-web-os): Likewise. (%tailon-os): Likewise. * tests/guix-system.sh: Likewise. * doc/guix.texi (Networking Services): Document 'dhcp-client-service-type' and remove 'dhcp-client-service'. Ludovic Courtès
2018-10-02services: Add Gitolite....* gnu/services/version-control.scm (<gitolite-configuration>, <gitolite-rc-file>): New record types. (gitolite-accounts, gitolite-activation): New procedures. (gitolite-service-type): New variables. * gnu/tests/version-control.scm (%gitolite-test-admin-keypair, %gitolite-os, %test-gitolite): New variables. (run-gitolite-test): New procedure. * doc/guix.texi (Version Control): Document the gitolite service. Christopher Baines
2018-09-29Revert "services: Add Gitolite."...This reverts commit 258a6d944ed891fa92fa87a16731e5dfe0bac477. Mark H Weaver
2018-09-28services: Add Gitolite....* gnu/services/version-control.scm (<gitolite-configuration>, <gitolite-rc-file>): New record types. (gitolite-accounts, gitolite-activation): New procedures. (gitolite-service-type): New variables. * gnu/tests/version-control.scm (%gitolite-test-admin-keypair, %gitolite-os, %test-gitolite): New variables. (run-gitolite-test): New procedure. * doc/guix.texi (Version Control): Document the gitolite service. Christopher Baines
2018-09-28tests: Add missing copyright statement....This is a follow-up to commit 3b97a1779f3b65d582b8edc8c154b6414314b946. * gnu/tests/web.scm: Update copyright header. Marius Bakke
2018-09-26services: Add Varnish service....* gnu/services/web.scm (<varnish-configuration>): New record type. (%varnish-accounts, %varnish-service-type): New variables. (varnish-shepherd-service): New procedure. * gnu/tests/web.scm (%varnish-vcl, %varnish-os): New variables. (%test-varnish): New test. * doc/guix.texi (Web Services): Document it. Marius Bakke
2018-09-20gnu: services: Add iptables service....* gnu/services/networking.scm (<iptables-configuration>): New record type. (iptables-service-type): New variable. * gnu/tests/networking.scm (run-iptables-test): New procedure. (%test-iptables): New variable. * doc/guix.texi (Networking Services): Document it. Arun Isaac
2018-09-10services: tailon: Move to (gnu services web)....This allows (gnu services admin) to remain deeper in the module graph and to be used by (gnu services web). * gnu/services/admin.scm (<tailon-configuration-file>) (tailon-configuration-files-string) (tailon-configuration-file-compiler, <tailon-configuration>) (tailon-shepherd-service, %tailon-accounts) (tailon-service-type): Move to... * gnu/services/web.scm: ... here. * gnu/tests/admin.scm: Remove. Move test to... * gnu/tests/web.scm (%tailon-os) (run-tailon-test, %test-tailon): ... here. Ludovic Courtès
2018-09-08tests: base: Add Guile-Gcrypt & co. to the search path....Fixes a regression introduced in ca719424455465fca4b872c371daf2a46de88b33, whereby (gcrypt hash) would not be found in the system under test, leading to a failure of the "/run/current-system is a GC root" test. * gnu/tests/base.scm (run-basic-test)[guix&co]: New variable. [test]: Add all of GUIX&CO to %LOAD-PATH. Ludovic Courtès
2018-08-28services: tor: Make it easier to use UNIX sockets....* doc/guix.texi (Networking Services): Document it, and mention that tor-service is deprecated. * gnu/services/networking.scm (<tor-configuration>) <socks-socket-type>: New field. (tor-configuration->torrc): When socks-socket-type is 'unix, set SocksPort to UNIX domain socket /var/run/tor/socks-sock and set UnixSocksGroupWritable to 1. * gnu/tests/networking.scm (%tor-os/unix-socks-socket): Instead of using a custom config file, just set socks-socket-type to 'unix. Chris Marusich
2018-08-28tests: tor: Add more test cases....* gnu/tests/networking.scm (%tor-os/unix-socks-socket): New variable. (run-tor-test) <os/unix-socks-socket, marionette/unix-socks-socket> <socket-directory>: New variables. <"tor is alive">: Move common code from this test case... <tor-is-alive?>: ...into this new procedure. <"tor is listening", "tor is alive, even when using a SOCKS socket"> <"tor is listening, even when using a SOCKS socket">: New test cases. Chris Marusich
2018-08-28services: tor: Add a system test....* gnu/services/networking.scm (tor-configuration->torrc): Set PidFile to /var/run/tor/tor.pid in the base torrc configuration. (tor-shepherd-service) <start>: Call make-forkexec-constructor/container with a new #:pid-file argument to tell Shepherd where to find the PID file. Add a a new <file-system-mapping> to its existing #:mappings argument to share /var/run/tor with the the container. (tor-hidden-services-activation): Update docstring. Create /var/run/tor and set its permissions so only the tor user can access it. * gnu/tests/networking.scm (%test-tor, %tor-os): New variables. (run-tor-test): New procedure. Chris Marusich
2018-08-16gnu: services: Add pcscd service....* gnu/services/security-token.scm: New file. * gnu/tests/security-token.scm: New file. * gnu/local.mk (GNU_SYSTEM_MODULES): Register new files. * doc/guix.texi (Miscellaneous Services): Document the service. Arun Isaac