小编spa*_*spa的帖子

如何在gitlab-ci.yml中指定图像平台

我正在尝试构建 CI 管道,该管道确实为特定图像构建。然而,在 CI 文件中,我找不到指定图像平台的方法。

stages:
  - build
  - deploy

build_j:
  image: customServer/debian/jessy
Run Code Online (Sandbox Code Playgroud)

我检查了Docker Images docthis但找不到任何示例。另一种方法可能是显式拉取图像并使用脚本运行命令。

docker pull debian:jessy -platform i386
Run Code Online (Sandbox Code Playgroud)

gitlab gitlab-ci

6
推荐指数
1
解决办法
4068
查看次数

Google Test:如何为多个测试只运行一次fixture?

我正在尝试使用 gtest 测试 http 客户端。我想用我自己的 http 服务器测试这个客户端。我有一个小型 python 服务器。测试用例是客户端向这个 python 服务器发送各种请求。有没有办法在所有测试运行之前启动服务器并在测试后销毁该服务器?

我正在尝试使用 gtest 固定装置,如下所示;通过在 SetUp 中创建一个新进程并在 TearDown 中终止它。但看起来这些调用是针对每个测试进行的。

class Base: public ::testing::Test {
public:
    pid_t child_pid = 0;
    void SetUp() {
        char *cmd = "/usr/bin/python";
        char *arg[] = {cmd, "./http_server.py", NULL};
        child_pid = fork();
        if ( child_pid == 0) {
            execvp(cmd, arg);
            std::cout << "Failed to exec child: " << child_pid << std::endl;
            exit(-1);
        } else if (child_pid < 0) {
            std::cout << "Failed to fork child: " << child_pid …
Run Code Online (Sandbox Code Playgroud)

c++ unit-testing googletest

5
推荐指数
1
解决办法
4492
查看次数

libcurl:如何下载原始文件名的网址?(相当于"-O/ - remote-name")

问题1:使用libcurl下载url时,如何保留下载文件的原始名称?LibCurl要求程序员生成文件名.当URL具有例如下面的url时,这很容易找出目标名称是vimqrc.pdf.

 http://tnerual.eriogerg.free.fr/vimqrc.pdf)  
Run Code Online (Sandbox Code Playgroud)

但是当URL动态生成目标名称时,例如,下载URL AdbeRdr1010_eu_ES.exe.使用wget(除URL之外没有参数)和curl(参数-O)

http://get.adobe.com/reader/download/?installer=Reader_10.1_Basque_for_Windows&standalone=1%22
Run Code Online (Sandbox Code Playgroud)

如何卷曲(-O)或wget计算出名称

//invoked as ./a.out <URL>

#include <stdio.h>
#include <curl/curl.h>

char *location = "/tmp/test/out";

size_t write_data(void *ptr, size_t size, size_t nmemb, FILE *stream) {
    size_t written = fwrite(ptr, size, nmemb, stream);
    return written;
}

int main(int argc, char *argv[])
{
    CURL        *curl;
    CURLcode    res;
    int         ret = -1;


    if (argc!= 2) {
        //invoked as ./a.out <URL>
        return -1;
    } 

    curl = curl_easy_init();
    if (!curl) {
        goto bail;
    }

    FILE *fp = fopen(location, "wb"); …
Run Code Online (Sandbox Code Playgroud)

c curl wget download libcurl

4
推荐指数
1
解决办法
2565
查看次数

curl 与浏览器的结果不同

我正在尝试使用curl 从命令行下载以下URL。如果通过浏览器请求相同的 URL,则能够获取图像。但对于curl,服务器终止SSL握手。只是为了使用完全相同的参数;我尝试了 google-chrome 和 firefox 的“开发人员工具”中的curl 命令。但两者都失败并出现以下错误。

这个问题之前在这里被问过,但没有有效的答案。我按照建议尝试了 -http1.1 但没有成功。

https://floridakeyswebcams.tv/sloppycam/camarchive/0807.jpg

(base) (15:39 test@testcomp ~) > curl -v 'https://floridakeyswebcams.tv/sloppycam/camarchive/0807.jpg' -H 'Connection: keep-alive' -H 'Upgrade-Insecure-Requests: 1' -H 'User-Agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36' -H 'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3' -H 'Accept-Encoding: gzip, deflate, br' -H 'Accept-Language: en-US,en;q=0.9,hi;q=0.8,mr;q=0.7' -H 'If-None-Match: "90cbf2d5a81d51:da782"' -H 'If-Modified-Since: Fri, 03 May 2019 12:07:53 GMT' --compressed
*   Trying 74.209.245.140...
* TCP_NODELAY set
* Connected to floridakeyswebcams.tv (74.209.245.140) port 443 (#0)
* ALPN, offering …
Run Code Online (Sandbox Code Playgroud)

ssl curl openssl libcurl

3
推荐指数
1
解决办法
6056
查看次数

为什么“用谓词等待”可以解决条件变量的“丢失唤醒”?

我试图了解在条件变量的情况下虚假唤醒与丢失唤醒之间的区别。以下是我试过的小块代码。我知道在这种情况下“消费者”可能会在没有任何通知的情况下醒来,因此等待需要检查谓词。

但是wait with predicate 如何解决“丢失唤醒”的问题呢?正如你在下面的代码中看到的;'wait' 没有被调用 5 秒,我原以为它会错过前几个通知;但有了 predate,它不会错过任何一个。这些通知是否已保存以备将来等待?

#include <iostream>
#include <deque>
#include <condition_variable>
#include <thread>

std::deque<int> q;
std::mutex m;
std::condition_variable cv;

void dump_q()
{
    for (auto x: q) {
        std::cout << x << std::endl;
    }
}

void producer()
{
    for(int i = 0; i < 10; i++) {
        std::unique_lock<std::mutex> locker(m);
        q.push_back(i);
        std::cout << "produced: " << i << std::endl;
        cv.notify_one();

        std::this_thread::sleep_for(std::chrono::seconds(1));
        locker.unlock();
    }
}

void consumer()
{
    while (true) {
        int data = 0;
        std::this_thread::sleep_for(std::chrono::seconds(5));   // <- should …
Run Code Online (Sandbox Code Playgroud)

c++ multithreading synchronization condition-variable race-condition

3
推荐指数
1
解决办法
1277
查看次数

用 IP 地址替换部分 URL

我想做的是下面的事情。我有一个网址,比如http://www.google.com/one/two/three

我需要提取主域名“www.google.com”,将其提供给 nslookup(因为 nslookup/dig 似乎不适用于完整的 URL),然后将 URL 替换为已解析的 IP 地址。eg

$ echo "http://www.google.com/one/two/three" | sed "s/<pattern>//g" 
$ www.google.com
Run Code Online (Sandbox Code Playgroud)

问题是“http://”可能并不总是存在。进而

$ echo "http://www.google.com/one/two/three" | sed "s/<pattern>//g" 
$ http://11.22.33.44/one/two/three
Run Code Online (Sandbox Code Playgroud)

任何人都可以提供任何相关链接或相关示例吗?

linux sed

1
推荐指数
1
解决办法
120
查看次数